(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-07
(45)【発行日】2024-08-16
(54)【発明の名称】メモリシステムの電力管理
(51)【国際特許分類】
G06F 12/00 20060101AFI20240808BHJP
G06F 12/06 20060101ALI20240808BHJP
【FI】
G06F12/00 550E
G06F12/00 597U
G06F12/06 550A
(21)【出願番号】P 2023536822
(86)(22)【出願日】2021-06-01
(86)【国際出願番号】 CN2021097708
(87)【国際公開番号】W WO2022252121
(87)【国際公開日】2022-12-08
【審査請求日】2023-06-16
(73)【特許権者】
【識別番号】519237948
【氏名又は名称】長江存儲科技有限責任公司
【氏名又は名称原語表記】Yangtze Memory Technologies Co.,Ltd.
【住所又は居所原語表記】No.88 Weilai 3rd Road,East Lake High-tech Development Zone,Wuhan,Hubei,China
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】ジュウ・フェイフェイ
(72)【発明者】
【氏名】ホー・ユーシン
【審査官】北村 学
(56)【参考文献】
【文献】特開2014-049172(JP,A)
【文献】特開2016-212580(JP,A)
【文献】特開2014-232540(JP,A)
【文献】特開2012-043420(JP,A)
【文献】特開2002-351737(JP,A)
【文献】特表2010-512586(JP,A)
【文献】特開2001-052476(JP,A)
【文献】特開2019-101870(JP,A)
【文献】米国特許出願公開第2009/0019243(US,A1)
【文献】米国特許出願公開第2016/0231957(US,A1)
【文献】米国特許出願公開第2019/0214087(US,A1)
【文献】国際公開第2016/022254(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
メモリシステムであって、
少なくとも1つのメモリデバイスであって、前記少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、前記メモリセルのアレイに結合された制御論理回路とを備える、少なくとも1つのメモリデバイスと、
前記少なくとも1つのメモリデバイスに結合されたメモリコントローラと、を備え、
前記メモリコントローラ及び前記少なくとも1つのメモリデバイスの前記制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給され、
前記少なくとも1つのメモリデバイスの前記メモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給され、
前記メモリコントローラは、
メモリ動作の第1のキューを維持し、前記第1のキュー内の前記メモリ動作の実行は前記第1の電源からの電力消費を引き起こし、
メモリ動作の第2のキューを維持し、前記第2のキュー内の前記メモリ動作の実行は前記第2の電源からの電力消費を引き起こし、
前記第1のキュー及び前記第2のキュー内の後続のメモリ動作の実行がそれぞれ前記対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定し、
前記判定に基づいて、前記対応する第1の電源又は第2の電源を過負荷にしない前記第1のキュー又は前記第2のキュー内の前記後続のメモリ動作を実行し、
前記判定に基づいて、前記対応する第1の電源又は第2の電源を過負荷にする前記第1のキュー又は前記第2のキュー内の前記後続のメモリ動作を遅延させる、ように構成される、メモリシステム。
【請求項2】
前記第1のキュー内の前記メモリ動作は情報転送動作を含み、前記第2のキュー内の前記メモリ動作は、読み出し動作、プログラム動作、又は消去動作のうちの少なくとも1つを含む、請求項1に記載のメモリシステム。
【請求項3】
前記メモリコントローラは、
複数のメモリ動作を並列に実行する際の総同時電力消費を示す現在の電力消費値を決定し、
前記第1のキュー又は前記第2のキュー内の後続のメモリ動作を実行する追加の電力消費を示す追加電力消費値を決定し、
前記現在の電力消費値と前記追加電力消費値との合計が、前記後続のメモリ動作を保持する前記第1のキュー又は前記第2のキューに対応する前記第1の所定の電力消費閾値又は前記第2の所定の電力消費閾値を超えるかどうかを判定し、
前記現在の電力消費値と前記追加電力消費値との前記合計が前記第1の所定の電力消費閾値又は前記第2の所定の電力消費閾値を超えないと判定した後で、前記後続のメモリ動作の実行は前記対応する第1の電源又は第2の電源を過負荷にさせないと判定する、ように構成される、請求項1又は2に記載のメモリシステム。
【請求項4】
前記メモリコントローラは、前記現在の電力消費値と前記追加電力消費値との前記合計が前記第1の所定の電力消費閾値又は前記第2の所定の電力消費閾値を超えると判定した後で、前記後続のメモリ動作の実行により前記対応する第1の電源又は第2の電源が過負荷になると判定するように構成される、請求項3に記載のメモリシステム。
【請求項5】
前記メモリコントローラは、
前記複数のメモリ動作のそれぞれのタイプを決定し、
前記複数のメモリ動作にそれぞれ対応する個別電力消費値を、前記それぞれのタイプに基づいて決定し、
前記個別電力消費値に基づいて前記現在の電力消費値を決定するように構成される、請求項3又は4に記載のメモリシステム。
【請求項6】
前記メモリコントローラは、
環境条件に基づいて前記決定された個別電力消費値を調整し、
前記調整された個別電力消費値に基づいて、前記現在の電力消費値を決定するように構成される、請求項5に記載のメモリシステム。
【請求項7】
各タイプのメモリ動作は、所定の電力消費値に対応し、
前記メモリコントローラは、
前記複数のメモリ動作の前記それぞれのタイプを前記対応する所定の電力消費値にマッピングすることに基づいて前記個別電力消費値を決定するように構成される、請求項5又は6に記載のメモリシステム。
【請求項8】
前記複数のメモリ動作の前記タイプは、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、シングルプレーン動作、情報転送動作、符号化動作、又は復号動作のうちの少なくとも1つを含む、請求項5~7のいずれか1項に記載のメモリシステム。
【請求項9】
前記現在の電力消費値、前記追加電力消費値、又は前記所定の電力消費閾値のうちの少なくとも1つは、所定の基準に基づいて計算された相対値の形態である、請求項3~8のいずれか1項に記載のメモリシステム。
【請求項10】
前記メモリデバイスは、三次元(3D)NANDメモリデバイスを備える、請求項1~9のいずれか1項に記載のメモリシステム。
【請求項11】
メモリシステムの電力を管理する方法であって、
前記メモリシステムは、
少なくとも1つのメモリデバイスであって、前記少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、前記メモリセルのアレイに結合された制御論理回路とを備える、少なくとも1つのメモリデバイスと、
前記少なくとも1つのメモリデバイスに結合されたメモリコントローラと、を備え、
前記メモリコントローラ及び前記少なくとも1つのメモリデバイスの前記制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給され、
前記少なくとも1つのメモリデバイスの前記メモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給され、
前記方法は、
メモリ動作の第1のキューを維持することであって、前記第1のキュー内の前記メモリ動作の実行は前記第1の電源からの電力消費を引き起こす、第1のキューを維持することと、
メモリ動作の第2のキューを維持することであって、前記第2のキュー内の前記メモリ動作の実行は前記第2の電源からの電力消費を引き起こす、第2のキューを維持することと、
前記第1のキュー及び前記第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する前記第1の電源及び前記第2の電源を過負荷にするかどうかを別々に判定することと、
前記判定に基づいて、前記対応する第1の電源又は第2の電源を過負荷にしない前記第1のキュー又は前記第2のキュー内の前記後続のメモリ動作を実行することと、
前記判定に基づいて、前記対応する第1の電源又は第2の電源を過負荷にする前記第1のキュー又は前記第2のキュー内の前記後続のメモリ動作を遅延させることと、
を含む、方法。
【請求項12】
前記第1のキュー内の前記メモリ動作は情報転送動作を含み、前記第2のキュー内の前記メモリ動作は、読み出し動作、プログラム動作、又は消去動作のうちの少なくとも1つを含む、請求項11に記載の方法。
【請求項13】
複数のメモリ動作を並列に実行する際の総同時電力消費を示す現在の電力消費値を決定することと、
前記第1のキュー又は前記第2のキュー内の後続のメモリ動作を実行する追加の電力消費を示す追加電力消費値を決定することと、
前記現在の電力消費値と前記追加電力消費値との合計が、前記後続のメモリ動作を保持する前記第1のキュー又は前記第2のキューに対応する前記第1の所定の電力消費閾値又は前記第2の所定の電力消費閾値を超えるかどうかを判定することと、
前記現在の電力消費値と前記追加電力消費値との前記合計が前記第1の所定の電力消費閾値又は前記第2の所定の電力消費閾値を超えないと判定した後で、前記後続のメモリ動作の実行は前記対応する第1の電源又は第2の電源を過負荷にさせないと判定することと、
を含む、請求項11又は12に記載の方法。
【請求項14】
前記現在の電力消費値と前記追加電力消費値との前記合計が前記第1の所定の電力消費閾値又は前記第2の所定の電力消費閾値を超えると判定した後で、前記後続のメモリ動作の実行により前記対応する第1の電源又は第2の電源が過負荷になると判定するように構成される、請求項13に記載の方法。
【請求項15】
前記複数のメモリ動作のそれぞれのタイプを決定することと、
前記複数のメモリ動作にそれぞれ対応する個々の電力消費値を、前記それぞれのタイプに基づいて決定することと、
前記個別電力消費値に基づいて前記現在の電力消費値を決定することと、
を含む、請求項13又は14に記載の方法。
【請求項16】
環境条件に基づいて前記決定された個別電力消費値を調整することと、
前記調整された個別電力消費値に基づいて、前記現在の電力消費値を決定することと、
を含む、請求項15に記載の方法。
【請求項17】
各タイプのメモリ動作は、所定の電力消費値に対応し、
前記方法は、
前記複数のメモリ動作の前記それぞれのタイプを前記対応する所定の電力消費値にマッピングすることに基づいて前記個別電力消費値を決定することを含む、請求項15又は16に記載の方法。
【請求項18】
前記複数のメモリ動作の前記タイプは、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、シングルプレーン動作、情報転送動作、符号化動作、又は復号動作のうちの少なくとも1つを含む、請求項15~17のいずれか1項に記載の方法。
【請求項19】
前記現在の電力消費値、前記追加電力消費値、又は前記所定の電力消費閾値のうちの少なくとも1つは、所定の基準に基づいて計算された相対値の形態である、請求項13~18のいずれか1項に記載の方法。
【請求項20】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、メモリシステムのメモリコントローラによって実行されると、前記メモリコントローラに、前記メモリシステムの電力を管理する方法を実行させ、
前記メモリシステムは、
少なくとも1つのメモリデバイスであって、前記少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、前記メモリセルのアレイに結合された制御論理回路とを備える、少なくとも1つのメモリデバイスと、
前記少なくとも1つのメモリデバイスに結合されたメモリコントローラと、を備え、
前記メモリコントローラ及び前記少なくとも1つのメモリデバイスの前記制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給され、
前記少なくとも1つのメモリデバイスの前記メモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給され、
前記方法は、
メモリ動作の第1のキューを維持することであって、前記第1のキュー内の前記メモリ動作の実行は前記第1の電源からの電力消費を引き起こす、第1のキューを維持することと、
メモリ動作の第2のキューを維持することであって、前記第2のキュー内の前記メモリ動作の実行は前記第2の電源からの電力消費を引き起こす、第2のキューを維持することと、
前記第1のキュー及び前記第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する前記第1の電源及び前記第2の電源を過負荷にするかどうかを別々に判定することと、
前記判定に基づいて、前記対応する第1の電源又は第2の電源を過負荷にしない前記第1のキュー又は前記第2のキュー内の前記後続のメモリ動作を実行することと、
前記判定に基づいて、前記対応する第1の電源又は第2の電源を過負荷にする前記第1のキュー又は前記第2のキュー内の前記後続のメモリ動作を遅延させることと、
を含む、非一時的コンピュータ可読媒体
。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、メモリシステム及びその動作方法に関する。
【0002】
フラッシュメモリは、電気的に消去及び再プログラムすることができる低コストで高密度の不揮発性固体記憶媒体である。NANDフラッシュプレーンの数の増加及び読み出し-書き込み性能の向上に伴い、ピーク電力管理は、個体記憶製品、特にUFS(Universal flash storage)チップにおいてますます重要になってきている。アクセス可能なNANDメモリデバイスの数の制限及び並列動作の総数の制限に基づくピーク電力制御の既存の方法は柔軟性がなく、電源によって提供される利用可能なマージンを十分に利用しない。したがって、既存の電力管理方法を改善してメモリ性能を向上させることが望ましい。
【発明の概要】
【0003】
一態様において、メモリシステムは、少なくとも1つのメモリデバイスと、少なくとも1つのメモリデバイスに結合されたメモリコントローラとを含むことができる。少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、メモリセルのアレイに結合された制御論理回路とを含むことができる。少なくとも1つのメモリデバイスのメモリコントローラ及び制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給されてもよい。少なくとも1つのメモリデバイスのメモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給されてもよい。メモリコントローラは、メモリ動作の第1のキューを維持し、第1のキュー内のメモリ動作の実行は第1の電源からの電力消費を引き起こし、メモリ動作の第2のキューを維持し、第2のキュー内のメモリ動作の実行は第2の電源からの電力消費を引き起こし、第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定し、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行し、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させる、ように構成されてもよい。
【0004】
別の態様では、メモリシステムの電力を管理するための方法が提供される。メモリシステムは、少なくとも1つのメモリデバイスと、少なくとも1つのメモリデバイスに結合されたメモリコントローラとを含むことができる。少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、メモリセルのアレイに結合された制御論理回路とを含むことができる。少なくとも1つのメモリデバイスのメモリコントローラ及び制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給されてもよい。少なくとも1つのメモリデバイスのメモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給されてもよい。本方法は、メモリ動作の第1のキューを維持することであって、第1のキュー内のメモリ動作の実行は第1の電源からの電力消費を引き起こす、第1のキューを維持することを含むことができる。本方法はまた、メモリ動作の第2のキューを維持することであって、第2のキュー内のメモリ動作の実行は第2の電源からの電力消費を引き起こす、第2のキューを維持することを含むことができる。本方法は、第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定することを更に含むことができる。本方法は、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行することを更に含むことができる。本方法は、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させることを更に含むことができる。
【0005】
更に別の態様では、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は命令を記憶し、命令は、メモリシステムのメモリコントローラによって実行されると、メモリコントローラに、メモリシステムの電力を管理する方法を実行させる。メモリシステムは、少なくとも1つのメモリデバイスと、少なくとも1つのメモリデバイスに結合されたメモリコントローラとを含むことができる。少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、メモリセルのアレイに結合された制御論理回路とを含むことができる。少なくとも1つのメモリデバイスのメモリコントローラ及び制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給されてもよい。少なくとも1つのメモリデバイスのメモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給されてもよい。本方法は、メモリ動作の第1のキューを維持することであって、第1のキュー内のメモリ動作の実行は第1の電源からの電力消費を引き起こす、第1のキューを維持することを含むことができる。本方法はまた、メモリ動作の第2のキューを維持することであって、第2のキュー内のメモリ動作の実行は第2の電源からの電力消費を引き起こす、第2のキューを維持することを含むことができる。本方法は、第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定することを更に含むことができる。本方法は、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行することを更に含むことができる。本方法は、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させることを更に含むことができる。
【図面の簡単な説明】
【0006】
本明細書に組み込まれ、本明細書の一部を形成する添付の図面は、本開示の態様を示し、説明と共に、本開示の原理を説明し、当業者が本開示を作成及び使用することを可能にするのに更に役立つ。
【
図1】本開示のいくつかの態様による、メモリシステムを有する典型的なシステムのブロック図を示す。
【
図2A】本開示のいくつかの態様による、メモリデバイスを有する典型的なメモリカードの図を示す。
【
図2B】本開示のいくつかの態様による、メモリデバイスを有する典型的なソリッドステートドライブ(SSD)の図を示す。
【
図3】本開示のいくつかの態様による、周辺回路を含む典型的なメモリデバイスの概略図を示す。
【
図4】本開示のいくつかの態様による、メモリセルアレイ及び周辺回路を含む典型的なメモリデバイスのブロック図を示す。
【
図5A】本開示のいくつかの態様による、メモリシステムの典型的な実装形態を示す。
【
図5B】本開示のいくつかの態様による、メモリシステムの別の典型的な実装形態を示す。
【
図6】本開示のいくつかの態様による、電源過負荷を防止するための改良された電力管理機構を有する典型的なメモリシステムを示す。
【
図7】本開示のいくつかの態様による、メモリシステムの電力を管理するための典型的な方法のフローチャートを示す。
【
図8】本開示のいくつかの態様による、メモリシステムの電力を管理するための別の典型的な方法のフローチャートを示す。
【0007】
以下、本開示を添付の図面に基づいて説明する。
【発明を実施するための形態】
【0008】
特定の構成及び配置について説明するが、これは例示のみを目的として行われることを理解されたい。したがって、本開示の範囲から逸脱することなく、他の構成及び配置を使用することができる。また、本開示は、他の様々な用途にも適用することができる。本開示に記載された機能的及び構造的特徴は、これらの組み合わせ、調整、及び修正が本開示の範囲内にあるように、互いに、及び図面に具体的に示されていない方法で組み合わせ、調整、及び修正することができる。
【0009】
一般に、用語は、文脈における使用から少なくとも部分的に理解され得る。例えば、本明細書で使用される「1つ以上(one or more)」という用語は、文脈に少なくとも部分的に依存して、任意の特徴、構造、又は特性を単数の意味で説明するために使用されてもよく、又は特徴、構造、又は特性の組み合わせを複数の意味で説明するために使用されてもよい。同様に、「1つの(a)」、「1つの(an)」、又は「その(the)」などの用語は、文脈に少なくとも部分的に依存して、単数形の用法を伝えるか、又は複数形の用法を伝えると理解されてもよい。更に、「に基づく(based on)」という用語は、必ずしも排他的な要因のセットを伝達することを意図していないと理解されてもよく、代わりに、文脈に少なくとも部分的に依存して、必ずしも明示的に説明されていない追加の要因の存在を可能にしてもよい。
【0010】
NANDフラッシュプレーンの数の増加及び読み出し-書き込み性能の向上に伴い、ピーク電力管理は、個体記憶製品においてますます重要になってきている。ピーク電力制御の中核は、並列メモリ動作の数を制限することである。
【0011】
一般的な解決策は、アクセス可能なメモリデバイスの数を上層に制限することである。例えば、並列動作の数が限界を超えないことを確実にするために、8個のダイを4個のダイとして管理する。しかしながら、この方法は、上層フラッシュメモリ管理アルゴリズムを含むため柔軟性がなく、並列動作ダイの最大数を動的に調整することは困難である。加えて、性能にも影響する。例えば、書き込み動作のための並列動作ダイの最大数の制限に起因して、読み出し動作性能も制限される。
【0012】
別の解決策は、メモリ動作のタイプに基づいて並列動作の数を記録することである。並列動作の数が閾値を超えると、それ以上の動作はトリガされない。しかしながら、この方法も柔軟性に欠ける。例えば、複数のダイが同時に異なる動作を有する場合など、すべてのシナリオを網羅することは困難である。更に、各動作が実行ダイとして記録される場合、ピーク電力範囲内で完全な性能を提供しない可能性がある。更に、遅延メモリ動作は、メモリデバイスのキャッシュ動作を利用するのに失敗する可能性がある。
【0013】
本出願は、上述の問題の1つ以上に対処するための改善された電力管理解決策を提供する。
【0014】
図1は、本開示のいくつかの態様による、メモリシステム102を有する典型的なシステム100のブロック図を示す。システム100は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、車両コンピュータ、ゲームコンソール、プリンタ、測位デバイス、ウェアラブル電子デバイス、スマートセンサ、仮想現実(VR)デバイス、拡張現実(AR)デバイス、又は内部に記憶装置を有する任意の他の適切な電子デバイス若しくはシステムとすることができる。
図1に示すように、システム100は、ホスト108と、1つ以上のメモリデバイス104及びメモリコントローラ106を有するメモリシステム102とを含むことができる。ホスト108は、中央処理装置(CPU)などの電子デバイスのプロセッサ、又はアプリケーションプロセッサ(AP)などのシステムオンチップ(SoC)とすることができる。ホスト108は、メモリシステム102との間でデータを送受信するように構成することができる。
【0015】
メモリデバイス104は、本開示に開示された任意のメモリデバイスとすることができる。例えば、メモリデバイス104は、NANDフラッシュメモリデバイス又はNORフラッシュメモリデバイスであってもよい。以下の説明では、NANDベースのメモリデバイス104を例として使用して、改善された電力管理解決策を開示する。開示された電力管理解決策は、他のタイプのメモリデバイスにも適用できることに留意されたい。
【0016】
メモリコントローラ106は、いくつかの実装形態によれば、メモリデバイス104及びホスト108に結合され、メモリデバイス104を制御するように構成される。メモリコントローラ106は、メモリデバイス104に記憶されたデータを管理し、ホスト108と通信することができる。いくつかの実装形態では、メモリコントローラ106は、セキュアデジタル(SD)カード、コンパクトフラッシュ(登録商標)(CF)カード、ユニバーサルシリアルバス(USB)フラッシュドライブ、又はパーソナルコンピュータ、デジタルカメラ、携帯電話などの電子デバイスで使用するための他の媒体などの低デューティサイクル環境で動作するように設計される。いくつかの実装形態では、メモリコントローラ106は、スマートフォン、タブレット、ラップトップコンピュータなどのモバイルデバイス、及びエンタープライズストレージアレイのデータ記憶装置として使用される高デューティサイクル環境SSD又は組み込みマルチメディアカード(eMMC)で動作するように設計される。メモリコントローラ106は、読み出し、消去、及びプログラム動作などのメモリデバイス104の動作を制御するように構成することができる。メモリコントローラ106はまた、バッドブロック管理、ガベージコレクション、論理物理アドレス変換、ウェアレベリングなどを含むがこれらに限定されない、メモリデバイス104に記憶された、又は記憶されるデータに関する様々な機能を管理するように構成することができる。いくつかの実装形態では、メモリコントローラ106は、メモリデバイス104から読み出された、又はメモリデバイス104に書き込まれたデータに関してエラーチェック及び訂正(ECC)を処理するように更に構成される。任意の他の適切な機能、例えば、メモリデバイス104をフォーマットすることも、メモリコントローラ106によって実行することができる。メモリコントローラ106は、特定の通信プロトコルに従って外部デバイス(例えば、ホスト108)と通信することができる。例えば、メモリコントローラ106は、USBプロトコル、MMCプロトコル、周辺機器相互接続(PCI)プロトコル、PCIエクスプレス(PCI-E)プロトコル、アドバンストテクノロジアタッチメント(ATA)プロトコル、シリアルATAプロトコル、パラレルATAプロトコル、スモールコンピュータスモールインタフェース(SCSI)プロトコル、enhanced small disk interface(ESDI)プロトコル、integrated drive electronics(IDE)プロトコル、Firewireプロトコルなどの様々なインタフェースプロトコルのうちの少なくとも1つを介して外部デバイスと通信することができる。本明細書に開示されるように、メモリコントローラ106は、メモリシステム102の動作速度を改善するためにメモリシステム102の電力を管理するように構成され得る。
【0017】
メモリコントローラ106及び1つ以上のメモリデバイス104は、様々なタイプの記憶デバイスに統合することができ、例えば、universal Flash storage(UFS)パッケージ又はeMMCパッケージなどの同じパッケージに含めることができる。すなわち、メモリシステム102は、異なるタイプの最終電子製品に実装及びパッケージ化することができる。
図2Aに示す一例では、メモリコントローラ106及び単一のメモリデバイス104は、メモリカード202に統合されてもよい。メモリカード202は、PCカード(PCMCIA,Personal Computer Memory Card International Association)、CFカード、スマートメディア(SM)カード、メモリスティック、マルチメディアカード(MMC、RS-MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、UFSなどを含むことができる。メモリカード202は、メモリカード202をホスト(例えば、
図1のホスト108)と結合するメモリカードコネクタ204を更に含むことができる。
図2Bに示す別の例では、メモリコントローラ106及び複数のメモリデバイス104は、SSD206に統合されてもよい。SSD206は、SSD206をホスト(例えば、
図1のホスト108)と結合するSSDコネクタ208を更に含むことができる。いくつかの実装形態では、SSD206の記憶容量及び/又は動作速度は、メモリカード202の記憶容量及び/又は動作速度よりも大きい。
【0018】
図3は、本開示のいくつかの態様による、周辺回路を含む典型的なメモリデバイス300の概略回路図を示す。メモリデバイス300は、
図1のメモリデバイス104の一例であり得る。メモリデバイス300は、メモリセルアレイ301と、メモリセルアレイ301に結合された周辺回路302とを含むことができる。メモリセルアレイ301は、各々が基板(図示せず)の上方に垂直に延在するNANDメモリストリング308のアレイの形態でメモリセル306が提供されるNANDフラッシュメモリセルアレイとすることができる。いくつかの実装形態では、各NANDメモリストリング308は、直列に結合され、垂直に積み重ねられた複数のメモリセル306を含む。各メモリセル306は、メモリセル306の領域内に捕捉された電子の数に依存する電圧又は電荷などの連続的なアナログ値を保持することができる。各メモリセル306は、フローティングゲートトランジスタを含むフローティングゲート型のメモリセル、又は電荷トラップトランジスタを含む電荷トラップ型のメモリセルのいずれかとすることができる。
【0019】
いくつかの実装形態では、各メモリセル306は、2つの可能なメモリ状態を有し、したがって、1ビットのデータを記憶することができるシングルレベルセル(SLC)である。例えば、第1のメモリ状態「0」は第1の電圧範囲に対応することができ、第2のメモリ状態「1」は第2の電圧範囲に対応することができる。いくつかの実装形態では、各メモリセル306は、4つを超えるメモリ状態において単一ビットを超えるデータを記憶することができるマルチレベルセル(MLC)である。例えば、MLCは、セル当たり2ビット、セル当たり3ビット(トリプルレベルセル(TLC)としても知られる)、又はセル当たり4ビット(クァッドレベルセル(QLC)としても知られる)を記憶することができる。各MLCは、可能な公称記憶値の範囲を想定するようにプログラムすることができる。一例では、各MLCが2ビットのデータを記憶する場合、3つの可能な公称記憶値のうちの1つをセルに書き込むことによって、消去状態から3つの可能なプログラミングレベルのうちの1つをとるようにMLCをプログラムすることができる。第4の公称記憶値を消去状態に使用することができる。
【0020】
図3に示すように、各NANDメモリストリング308は、そのソース端にソース選択ゲート(SSG)トランジスタ310を含み、そのドレイン端にドレイン選択ゲート(DSG)トランジスタ312を含むことができる。SSGトランジスタ310及びDSGトランジスタ312は、読み出し及びプログラム動作中に選択されたNANDメモリストリング308(アレイの列)をアクティブ化するように構成することができる。いくつかの実装形態では、同じブロック304内のNANDメモリストリング308のSSGトランジスタ310は、同じソース線(SL)314、例えば共通のSLを介して、例えばグランドに結合される。いくつかの実装形態によれば、各NANDメモリストリング308のDSGトランジスタ312は、それぞれのビット線316に結合され、そこから出力バス(図示せず)を介してデータを読み出す又は書き込むことができる。いくつかの実装形態では、各NANDメモリストリング308は、1つ以上のDSG線313を介してそれぞれのトランジスタDSG312のゲートに選択電圧(例えば、DSGトランジスタ312の閾値電圧を超える)又は選択解除電圧(例えば、0V)を印加することによって、及び/又は1つ以上のSSG線315を介してそれぞれのSSGトランジスタ310のゲートに選択電圧(例えば、SSGトランジスタ310の閾値電圧を超える)又は選択解除電圧(例えば、0V)を印加することによって、選択又は選択解除されるように構成される。
【0021】
図3に示すように、NANDメモリストリング308は、各々が共通のソース線314を有することができる複数のブロック304に編成することができる。いくつかの実装形態では、各ブロック304は消去動作のための基本データ単位であり、すなわち、同じブロック304上のすべてのメモリセル306が同時に消去される。隣接するNANDメモリストリング308のメモリセル306は、メモリセル306のどの行が読み出し動作及びプログラム動作の影響を受けるかを選択するワード線318を介して結合することができる。いくつかの実装形態では、各ワード線318は、プログラム動作のための基本データ単位であるメモリセル306のページ320に結合される。ビットの1つのページ320のサイズは、1つのブロック304内のワード線318によって結合されるNANDメモリストリング308の数に関連し得る。各ワード線318は、それぞれのページ320内の各メモリセル306に複数の制御ゲート(ゲート電極)と、制御ゲートを結合するゲート線とを含むことができる。
【0022】
周辺回路302は、ビット線316、ワード線318、ソース線314、SSG線315、及びDSG線313を介してメモリセルアレイ301に結合することができる。周辺回路302は、ビット線316、ワード線318、ソース線314、SSG線315、及びDSG線313を介して各ターゲットメモリセル306に電圧信号及び/又は電流信号を印加及び感知することによって、メモリセルアレイ301の動作を容易にするための任意の適切なアナログ、デジタル、及び混合信号回路を含むことができる。周辺回路302は、金属酸化膜半導体(MOS)技術を使用して形成された様々なタイプの周辺回路を含むことができる。例えば、
図4は、ページバッファ/センス増幅器404、列デコーダ/ビット線ドライバ406、入力/出力(I/O)回路407、行デコーダ/ワード線ドライバ408、電圧発生器410、制御論理回路412、レジスタ414、インタフェース416、及びデータバス418を含むいくつかの典型的な周辺回路302を示す。いくつかの例では、
図4に示されていない追加の周辺回路も含まれ得ることが理解される。
【0023】
ページバッファ/センス増幅器404は、制御論理回路412からの制御信号に従って、メモリセルアレイ301との間でデータを読み出し、プログラム(書き込み)するように構成することができる。一例では、ページバッファ/センス増幅器404は、プログラムすべきプログラムデータ(書き込みデータ)の1つのページをメモリセルアレイ301の1つのページ320に記憶してもよい。別の例では、ページバッファ/センス増幅器404は、データが選択されたワード線318に結合されたメモリセル306内に適切にプログラムされていることを保証するためにプログラム検証動作を実行することができる。更に別の例では、ページバッファ/センス増幅器404はまた、メモリセル306に記憶されたデータビットを表すビット線316からの低電力信号を感知し、読み出し動作において認識可能な論理レベルまで小さい電圧振幅を増幅することができる。
【0024】
列デコーダ/ビット線ドライバ406は、制御論理回路412によって制御され、電圧発生器410から生成されたビット線電圧を印加することによって1つ以上のNANDメモリストリング308を選択するように構成することができる。I/O回路407は、ページバッファ/センス増幅器404及び/又は列デコーダ/ビット線ドライバ406に結合することができ、データバス418から入力されたデータをメモリセルアレイ301の所望のメモリセル領域(例えば、バンク)に導き(ルーティングし)、所望のメモリセル領域から出力されたデータをデータバス418に導くように構成することができる。
【0025】
行デコーダ/ワード線ドライバ408は、制御論理回路412、並びにメモリセルアレイ301の選択ブロック304及び選択ブロック304のワード線318によって制御されるように構成することができる。行デコーダ/ワード線ドライバ408は、電圧発生器410から生成されたワード線電圧を使用して選択されたワード線318を駆動するように更に構成することができる。電圧発生器410は、制御論理回路412によって制御され、メモリセルアレイ301に供給されるワード線電圧(例えば、読み出し電圧、プログラム電圧、パス電圧、ローカル電圧、及び検証電圧)を生成するように構成することができる。
【0026】
制御論理回路412は、上述の各周辺回路に結合することができ、各周辺回路の動作を制御するように構成することができる。レジスタ414は、制御論理回路412に結合することができ、状態情報、コマンド演算コード(OPコード)、及び各周辺回路の動作を制御するためのコマンドアドレスを記憶するための状態レジスタ、コマンドレジスタ、及びアドレスレジスタを含むことができる。インタフェース416は、制御論理回路412に結合することができ、ホスト(図示せず)から受信した制御コマンドを制御論理回路412にバッファ及び中継し、制御論理回路412から受信した状態情報をホストに中継するための制御バッファとして機能することができる。インタフェース416はまた、データバス418を介してI/O回路407に結合することができ、ホスト(図示せず)から受信した書き込みデータをI/O回路407にバッファ及び中継し、I/O回路407からの読み出しデータをホストに中継するためのデータI/Oインタフェース及びデータバッファとして機能することができる。例えば、インタフェース416は、データバス418に結合されたデータI/O417を含むことができる。
【0027】
図5Aは、本開示の実装形態による、メモリシステム102の典型的な実装形態を示す。
図5Aに示すように、メモリシステム102は、少なくとも1つのメモリデバイス104(例えば、3次元(3D)NANDメモリデバイス)と、メモリデバイス104に結合されたメモリコントローラ106とを含むことができる。簡略化のために
図5Aには1つのメモリデバイス104のみが示されているが、複数のメモリデバイスが使用されてもよい。いくつかの実装形態では、メモリデバイス(例えば、104)は「ダイ」と呼ばれることもある。メモリデバイス104は、
図4に関連して上述したように、メモリセル301のアレイ(メモリセルアレイ301とも呼ばれる)と、メモリセルアレイ301に結合された制御論理回路412とを含むことができる。メモリコントローラ106及び制御論理412は、互いの間の情報転送を容易にするように構成されてもよい。更に、制御論理回路412は、メモリセルアレイ301に対するデータ動作を容易にするためにメモリセルアレイ301を制御するように構成されてもよい。例えば、データプログラミング(書き込み)動作は、以下のように実施することができ、メモリコントローラ106は、制御論理回路412にプログラムされるべきデータを転送することができ、制御論理は、メモリセルアレイ301にデータをプログラム/書き込むためのプログラム動作を実行することができる。別の例では、データ読み出し動作は、以下のように実施することができ、制御論理回路412は、読み出し動作を実行して、メモリセルアレイ301からデータを取り出し、次いで、取り出されたデータをメモリコントローラ106に転送することができる。
【0028】
メモリコントローラ106及び制御論理回路412は、マイクロプロセッサ、マイクロコントローラ(別名microcontroller units(MCU))、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、ゲート論理回路、個別ハードウェア回路、並びに以下で詳細に説明する様々な機能を実行するように構成された他の適切なハードウェア、ファームウェア、及び/又はソフトウェアによって実装することができる。いくつかの実装形態では、上述した制御論理回路412の機能のうちの1つ以上は、内容参照可能メモリ(CAM)を用いて実装することができる。
【0029】
図5Aに示すように、メモリセルアレイ301は、読み出し動作、プログラム動作、消去動作など、メモリセルアレイ301によって実行されるメモリ動作を容易にするために電流Iccを供給する電源Vccによって電力供給されてもよい。一方、制御論理回路412、メモリコントローラ106、並びにそれらの間の構成要素(例えば、データバス、ダイレクトメモリアクセス(DMA)デバイスなど)は、別の電源Vccqによって電力供給され、電源Vccqは電流Iccqを供給して、データ転送動作及び命令転送動作を含む情報転送動作などの、メモリコントローラ106と制御論理回路412との間の情報転送に関するメモリ動作を容易にする。典型的な情報転送動作は、DMA読み出し動作及びDMAプログラム(書き込み)動作を含む。電源Vcc及びVccqの各々は、所定の電力消費閾値を有することができ、それを超えると、対応する電流(Icc又はIccq)の著しい低下を引き起こす可能性があり、その結果、電流を受け取る対応する構成要素の誤動作を引き起こす可能性がある。例えば、メモリセルアレイ301によるメモリ動作が、電源Vccの電力消費閾値を超える電力消費レベルを必要とする場合、メモリ動作を並列に実行すると、電源Vccが過負荷となり、メモリセルアレイ301が誤動作する可能性がある。別の例では、メモリコントローラ106と制御論理回路412との間の情報転送に関するメモリ動作が、電源Vccqの電力消費閾値を超える電力消費レベルを必要とする場合、メモリ動作を並列に実行すると、電源Vccqが過負荷になる可能性があり、その結果、メモリコントローラ106及び/又は制御論理回路412の誤動作を引き起こす可能性がある。
【0030】
図5Bは、本開示の実装形態による、メモリシステム102の典型的な別の実装形態を示す。
図5Bに示すように、メモリコントローラ106は、複数のメモリデバイス(104A~104D)に結合され、メモリデバイス104A~104Dを制御するように構成されてもよい。4つのメモリデバイスが
図5Bに示されているが、より少ない又はより多いメモリデバイスが使用されてもよい。メモリコントローラ106は、ホスト108(例えば、PCIEホスト)とインタフェースするためのPCIE層520及び/又はNVMe層530を含むことができる。PCIE層520及び/又はNVMe層530は、処理コア510に結合することができ、処理コア510は、処理コアのファームウェアに記憶された命令を実行することによって様々なメモリ制御機能を実施するように構成することができる。例えば、電力管理ユニット512は、処理コア510のファームウェアに記憶されたファームウェアプログラムによって実現されてもよい。電力管理ユニット512の典型的な実装形態は、
図6に関連してより詳細に説明される。処理コア510は、メモリデバイスコントローラ540、バッファ550、及びDRAMコントローラ560に結合することができる。メモリデバイスコントローラ540は、メモリデバイス104A~104Dとのインタフェースとして機能するように構成されてもよい。DRAMコントローラ560は、DRAM580上の情報ストアにアクセスするように構成され得る。バッファ550は、一時的な情報を記憶するように構成され得る。メモリコントローラ106には、1つ以上の他の論理回路570も存在してもよい。
【0031】
図6は、電源過負荷を防止するための改良された電力管理機構を有する典型的なメモリシステム600を示す。
図6に示すように、メモリシステム600は、メモリ動作イニシエータ610、メモリ動作の第1のキュー620、メモリ動作の第2のキュー630、キューマネージャ640、メモリ動作実行部650、及び複数のメモリセルアレイ301A~301Dを含むことができる。4つのメモリセルアレイが例示目的のために
図6に示されているが、より少ない又はより多いメモリセルアレイが使用されてもよい。いくつかの実装形態では、メモリ動作イニシエータ610、キュー620及び630、キューマネージャ640、並びにメモリ動作実行部650は、メモリデバイスコントローラ540によって実装され得る。例えば、メモリコントローラ106は、メモリ動作イニシエータ610、キュー620及び630、並びにキューマネージャ640の機能を実施するために非一時的コンピュータ可読媒体に記憶された命令を実行することができ、メモリデバイスコントローラ540は、メモリ動作実行部650の機能を実施するために非一時的コンピュータ可読媒体に記憶された命令を実行することができる。いくつかの実装形態では、非一時的コンピュータ可読媒体はROMデバイスの形態であってもよく、命令はファームウェアの形態であってもよい。メモリセルアレイ301A~301Dの各々は、
図5Aに示す制御論理回路412と同様の統合制御論理回路(
図6には示されていない)を含むことができる。
【0032】
メモリ動作イニシエータ610は、複数のメモリ動作のタイプは、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、シングルプレーン動作、情報転送動作、符号化動作、又は復号動作などのメモリ動作の1つ以上のタイプを含む、実行されるメモリ動作を開始するように構成され得る。読み出し動作とは、メモリセルアレイがそれに記憶されたデータを読み出す動作を指す。プログラム動作とは、メモリセルアレイがそれにデータをプログラム(書き込み)する動作を指す。消去動作とは、メモリセルアレイがそれに記憶されたデータを消去(除去)する動作を指す。シングルプレーン動作は、メモリデバイスの単一のプレーンのみを含むメモリセルアレイによって実行される動作を指し、マルチプレーン動作は、複数のプレーンを含む動作を指す。情報転送動作は、メモリコントローラ106とメモリセルアレイ(例えば、301A~301D)との間でデータ及び/又は命令を転送するためにメモリコントローラ106及び/又は制御論理回路412(例えば、
図5Aに示す)によって実行される動作を指す。例えば、情報転送動作は、メモリセルアレイからメモリコントローラ106にデータを転送するDMA読み出し動作と、メモリコントローラ106からメモリセルアレイにデータを転送するDMAプログラム(書き込み)動作とを含んでもよい。符号化及び復号動作は、エラーを検出及び訂正するためにメモリコントローラ106によって実行されてもよい。
【0033】
上述した各種のメモリ動作を実行すると、電力を消費する。特定のメモリ動作を実行する構成要素に応じて、異なるタイプのメモリ動作の実行は、異なる電源からの電力を消費し得る。例えば、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、及びシングルプレーン動作などのメモリ動作は、電流Iccを引き込み、電源Vccからの電力を消費するメモリセルアレイによって主に実行される。したがって、Iccは、メモリセルアレイによって実行される複数のメモリ動作を同時に実行することから生じる電力消費を表すことができる。Iccはまた、これらの同時に実行されたメモリ動作から生じる電力消費を示す電力消費値を計算するために使用されてもよい。したがって、並列に実行されるメモリセルアレイ実行のメモリ動作の同時実行数は、電源Vccの所定の電力消費閾値によって制限され得る。別の例では、情報転送動作、符号化動作、及び復号動作などのメモリ動作は、電流Iccqを引き出すメモリコントローラ106によって主に実行される。Iccと同様に、Iccqは、メモリコントローラ106によって実行される複数のメモリ動作を同時に実行することから生じる電力消費を表すことができる。Iccqはまた、これらの同時に実行されたメモリ動作から生じる電力消費を示す電力消費値を計算するために使用されてもよい。したがって、並列に実行されるメモリコントローラ実行のメモリ動作の同時実行数は、電源Vccqの所定の電力消費閾値によって制限され得る。
【0034】
キュー620及び630は、異なる電源からの電力消費を引き起こすメモリ動作を分離するように構成される。
図6に示すように、メモリコントローラ106は、キュー620(例えば、メモリコントローラ106のバッファ550内)を、その実行が電源Vccqからの電力消費を引き起こす一連のメモリ動作を保持するように維持し、キュー630(例えば、メモリコントローラ106のバッファ550内)を、その実行が電源Vccからの電力消費を引き起こす別の一連のメモリ動作を保持するように維持することができる。例えば、キュー620は、DMA読み出し動作、DMAプログラム動作などのメモリ動作を保持することができる。このようなメモリコントローラ実行のメモリ動作が実行されると、上述したように、電源Vccqからの電力消費が発生する。別の例では、キュー630は、読み出し動作、プログラム動作、消去動作などのメモリ動作を保持することができる。このようなメモリセルアレイのメモリ動作が実行されると、上述したように、電源Vccからの電力消費をもたらす。
【0035】
このようにメモリ動作を分離することにより、以前は十分に利用されていなかった電源における利用可能なマージンを効果的に収集することができる改善された電力管理方法を容易にすることができる。
図6に示すように、メモリ動作実行部650(例えば、メモリデバイスコントローラ540及び/又は対応するバックエンドモジュールによって実装される)は、複数のメモリ動作を並列に実行するように構成されてもよい。例えば、複数のメモリ動作は、その実行が電源Vccからの電力消費を引き起こす複数のメモリ動作を含むことができ、複数のメモリ動作は、複数のメモリセルアレイによって同時に実行することができる。別の例では、複数のメモリ動作は、その実行が電源Vccqからの電力消費を引き起こす複数のメモリ動作を含むことができ、複数のメモリ動作は、メモリコントローラ106と複数のメモリセルアレイとの間の情報転送を容易にするためにメモリコントローラ106によって同時に実行することができる。更なる例では、複数のメモリ動作は、上記の2つのケースで説明したメモリ動作の組み合わせを含むことができる。いずれの場合でも、メモリコントローラ106は、電源Vccから引き出される同時電力消費の合計が電源Vccの所定の電力消費閾値以下になるように制御し、電源Vccqから引き出される同時電力消費の合計が電源Vccqの所定の電力消費閾値以下になるように制御してもよい。
【0036】
いくつかの実装形態では、上述の電力管理方法は、キューマネージャ640を使用して実施することができる。例えば、キューマネージャ640は、キュー620内の後続のメモリ動作の実行によって電源Vccqが過負荷になるかどうか、及びキュー630内の後続のメモリ動作の実行によって電源Vccが過負荷になるかどうかを別々に判定するように構成され得る。キュー620を例にとると、キューマネージャ640は、電源Vccqから電力を引き出すこれらのメモリ動作を並列に実行する総同時電力消費を示す現在の電力消費値を決定することができる。いくつかの実装形態では、そのようなメモリ動作の情報は、メモリ動作実行部650によって提供されてもよい。例えば、メモリ動作実行部650は、電源Vccqから電力を引き出す同時に実行するメモリ動作のリストを維持してもよい。キューマネージャ640は、リストを取得し、リスト内のメモリ動作のそれぞれのタイプを決定することができる。各タイプのメモリ動作は、所定の電力消費値に対応することができる。電力消費値は、数値、デジタル値、アナログ値、電流/電圧/電力レベル、又はメモリ動作の同時実行に起因する電力消費を示すことができる任意の他の形態の情報など、多くの形態をとることができる。例えば、いくつかの実施形態では、異なるレベルの電力消費が複数のグループに分類されてもよく、各グループはデジタルコードによって表される。この場合、電力消費値としてデジタルコードを用いることができる。所定の電力消費値は、対応するメモリ動作を実行しながらVccq/Iccqの測定に基づいて予め決定されてもよい。所定の電力消費値は、絶対値(例えば、ワットで)であってもよいし、相対値であってもよい。相対値の形式をとる場合、相対値は、電源Vccqの所定の電力閾値に対して正規化するなど、所定の基準に基づいて、又は重み、パーセンテージなどの形式で計算することができる。所定の電力消費閾値もまた、所定の電力消費値と同様の形態であってもよい。キューマネージャ640は、メモリ動作のタイプと対応する電力消費値との間のマッピング関係を含むルックアップテーブル(例えば、メモリコントローラ106のRAM及び/又はDRAM580に記憶される)を維持することができる。このようにして、キューマネージャ640は、例えば、それぞれのタイプのメモリ動作を対応する所定の電力消費値にマッピングすることによって、それぞれのタイプに基づいてリスト内のメモリ動作に対応する個別電力消費値を決定することができる。個々の電力消費値が決定された後、キューマネージャ640は、個別電力消費値のすべてを合計することによって現在の電力消費値を決定することができる。
【0037】
いくつかの実装形態では、同時に実行するメモリ動作のリストを維持する代わりに、メモリ動作実行部650及び/又はキューマネージャ640は、キュー620に対応する現在の電力消費値を維持することができる。メモリ動作の完了後、その対応する電力消費値を現在の電力消費値から差し引くことができる。一方、後続のメモリ動作が並列実行に追加された後、その対応する電力消費値を現在の電力消費値に追加することができる。
【0038】
現在の電力消費値が電源Vccqの所定の電力消費閾値を超えることを防止するために、キューマネージャ640は、キュー620における後続のメモリ動作の開放又は保留を制御することができる。例えば、
図6に示すように、DMAプログラム動作は、現在実行中のメモリ動作と並列に実行されるキュー620内の次の(後続の)メモリ動作である。キューマネージャ640は、上述したように、現在の電力消費値、並びにDMAプログラム動作を実行する追加の電力消費を示す追加電力消費値を決定することができる。次いで、キューマネージャ640は、現在の電力消費値と追加電力消費値との合計が電源Vccqの所定の電力消費閾値を超えるかどうかを判定することができる。
【0039】
Psum+Pn<=Pmax 条件(1)
【0040】
式中、Psumは現在の電力消費値を指し、Pnは追加電力消費値を指し、Pmaxは所定の電力消費閾値を指す。
【0041】
条件(1)が満たされる場合、すなわち同時に実行されるメモリ動作のプールにDMAプログラム動作を追加することによって電源Vccqが過負荷になることがない場合、キューマネージャ640は、現在プール内にあるメモリ動作と並列に実行するためにメモリ動作実行部にDMAプログラム動作を解放することができる。あるいは、キューマネージャ640は、追加の電力消費マージン(例えば、1つ以上のメモリ動作の完了)が利用可能になるまでキュー620に保留することによってDMAプログラム動作の実行を遅延させることができる。
【0042】
いくつかの実装形態では、キューマネージャ640は、温度などの環境条件に基づいて個別電力消費値を調整して、異なる条件下での実際の電力消費をより正確に反映することができる。次いで、調整された個別電力消費値に基づいて現在の電力消費値を決定することができる。
【0043】
上記の例はキュー620に関連して説明されているが、キュー630に関連する電力管理も同様に実施することができる。
【0044】
本明細書で開示される電力管理方法は、電源によって提供されるマージンを利用することによってメモリ動作の全体的な速度を改善することができる。例えば、データ読み出し動作は、キュー630及び620にそれぞれ追加する、読み出し動作及びDMA読み出し動作の2つのメモリ動作を必要とすることが多い。DMA読み出し動作は、読み出し動作の実行によって課される電源Vccに対する負担よりも電源Vccqに対する負担が大きいため、DMA読み出し動作は性能のボトルネックとなることが多い。したがって、キュー630における読み出し動作は、キュー620におけるDMA読み出し動作よりも早く終了し得る。キューマネージャ640は、アイドル状態でDMA読み出し動作の完了を待つ代わりに、キュー630を進めてキュー内の次のメモリ動作を実行してもよい。このようにして、キュー630内の次のメモリ動作をDMA読み出し動作と同時に実行することができ、電源Vccの利用可能なマージンを効果的に獲得することができる。
【0045】
別の例では、データプログラミング(書き込み)動作は、従来、DMA書き込み動作の直後に書き込み動作を実行することによって実施される。書き込み動作の実行時には、以降の情報転送動作は行われない。その結果、電源Vccqによって提供される利用可能なマージンが無駄になる。本明細書で開示される別個のキューを使用して、データプログラミング動作は、データ読み出し動作と同様に、2つのメモリ動作を使用して実施することができる。例えば、キュー620及び630にそれぞれ追加されたDMAプログラム動作及びプログラム動作を用いてデータ書き込み動作を実現することができる。ここで、データ読み出しの場合と異なり、プログラム動作の実行は、DMAプログラム動作の実行によって電源Vccqに課される負担よりも大きな負担を電源Vccに課すことがある。したがって、DMAプログラム動作はより早く終了し、プログラム動作が依然として実行されている間に電源Vccqへの利用可能なマージンをあけることができる。キューマネージャ640は、アイドル状態でプログラム動作の完了を待つ代わりに、キュー内の次のメモリ動作、例えば別のDMAプログラム動作に進めてもよい。その後、この後続のDMAプログラム動作は、依然として実行中のプログラム動作と並列に実行することができ、メモリコントローラ106からメモリセルアレイへの情報転送速度を効果的に増加させる。
【0046】
図7は、本開示のいくつかの態様による、メモリシステムの電力を管理するための典型的な方法700のフローチャートを示す。メモリシステムは、本明細書に開示される任意の適切なメモリシステムであってもよい。方法700は、メモリコントローラ106によって実施することができる。方法700に示される動作は網羅的でなくてもよく、図示された動作のいずれかの前、後、又は間に他の動作も実行できることが理解される。更に、動作のいくつかは、同時に、又は
図7に示す順序とは異なる順序で実行されてもよい。
【0047】
図7を参照すると、方法700は動作710で開始し、メモリコントローラ106は、複数のメモリ動作を並列に実行する総同時消費を示す現在の電力消費値Psumを決定することができる。例えば、上述したように、キューマネージャ640は、現在のメモリ動作のリストをメモリ動作実行部650から取得することができる。次いで、キューマネージャ640は、メモリ動作のそれぞれのタイプを決定し、例えば、メモリ動作のタイプとそれらの対応する電力消費値との間のマッピング関係を記憶するルックアップテーブルを維持することによって、それぞれのタイプに基づいて個別電力消費値を決定することができる。キューマネージャ640は次いで、個別電力消費値のすべてを合計することによって現在の電力消費値を決定することができる。
【0048】
動作720において、メモリコントローラ106は、後続のメモリ動作を実行する追加の電力消費を示す追加電力消費値Pnを決定することができる。例えば、キューマネージャ640は、ステップ710で同時に実行されるメモリ動作の個別電力消費値を決定するのと同様に、メモリ動作のタイプに基づいてキュー630内の後続のメモリ動作(例えば、DMAプログラム)の電力消費値を決定することができる。
【0049】
動作730において、メモリコントローラ106は、PsumとPnとの合計が所定の電力消費閾値(例えば、電源Vccqの所定の電力消費閾値)を超えるかどうかを判定することができる。合計が所定の電力消費閾値を超えない場合、方法700はステップ740に進み、メモリコントローラ106は、複数のメモリ動作と並列に後続のメモリ動作を実行する。そうでない場合、方法700はステップ750に進み、そこでメモリコントローラ106は後続のメモリ動作の実行を遅延させる。
【0050】
図8は、本開示のいくつかの態様による、メモリシステムの電力を管理するための別の典型的な方法800のフローチャートを示す。メモリシステムは、本明細書に開示される任意の適切なメモリシステムであってもよい。方法800は、メモリコントローラ106によって実施することができる。方法800に示される動作は網羅的でなくてもよく、図示された動作のいずれかの前、後、又は間に他の動作も実行できることが理解される。更に、動作のいくつかは、同時に、又は
図8に示す順序とは異なる順序で実行されてもよい。
【0051】
図8を参照すると、方法800は動作810で開始し、メモリコントローラ106は、メモリ動作の第1のキュー(例えば、620)を維持することができ、第1のキュー内のメモリ動作の実行は、第1の電源(例えば、電源Vccq)からの電力消費を引き起こす。動作820において、メモリコントローラ106は、メモリ動作の第2のキュー(例えば、630)を維持することができ、第2のキュー内のメモリ動作の実行は、第2の電源(例えば、電源Vcc)からの電力消費を引き起こす。
【0052】
動作830において、メモリコントローラ106は第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定してもよい。例えば、キューマネージャ640は、キュー620におけるDMAプログラム動作の実行が電源Vccqを過負荷にするかどうかを判定することができる。電源過負荷条件は、条件(1)及び動作730と同様に設定することができる。例えば、Psum+Pn<=Pmaxの場合、キューマネージャ640は、キュー620(Pn)におけるDMAプログラム動作の実行が、電源Vccqを過負荷にさせないと判定することができる。Psum+Pn>Pmaxの場合、キューマネージャ640は、キュー620(Pn)におけるDMAプログラム動作の実行により、電源Vccqが過負荷になると判定することができる。キューマネージャ640は、異なるキューの電源過負荷条件を別々に判定することができる。
【0053】
動作840において、メモリコントローラ106は、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行してもよい。例えば、キューマネージャ640は、電源が過負荷にならないと判定された後に、DMAプログラム動作を同時に実行するメモリ動作のプール内に解放又はプッシュすることができる。
【0054】
動作850において、メモリコントローラ106は、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させてもよい。例えば、キューマネージャ640は、電源が過負荷になると判定された後に、DMAプログラム動作を同時に実行するメモリ動作のプール内に解放することを保留又は遅延させることができる。
【0055】
本開示の別の態様は、上述したように、命令を記憶する非一時的コンピュータ可読媒体に関し、命令は、実行されると、メモリコントローラ106などの1つ以上の処理ユニットに方法を実行させる。コンピュータ可読媒体は、揮発性又は不揮発性、磁気、半導体、テープ、光学、取り外し可能、取り外し不可能、又は他のタイプのコンピュータ可読媒体又はコンピュータ可読記憶装置を含むことができる。例えば、コンピュータ可読媒体は読み出し専用メモリ(ROM)の形態であってもよく、命令はファームウェアの形態であってもよい。
【0056】
本開示の一態様によれば、メモリシステムは、少なくとも1つのメモリデバイスと、少なくとも1つのメモリデバイスに結合されたメモリコントローラとを含む。メモリコントローラは、複数のメモリ動作を並列に実行する総同時電力消費を示す現在の電力消費値を決定するように構成されてもよい。メモリコントローラはまた、後続のメモリ動作を実行する追加の電力消費を示す追加電力消費値を決定するように構成されてもよい。メモリコントローラは、現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えるかどうかを判定するように更に構成することができる。現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えないと判定した後、メモリコントローラは、複数のメモリ動作と並列に後続のメモリ動作を実行するように構成されてもよい。
【0057】
いくつかの実装形態では、メモリコントローラは、現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えると判定した後に、後続のメモリ動作の実行を遅延させるように構成されてもよい。
【0058】
いくつかの実装形態では、メモリコントローラは、複数のメモリ動作のそれぞれのタイプを決定し、複数のメモリ動作にそれぞれ対応する個別電力消費値を、それぞれのタイプに基づいて決定し、個別電力消費値に基づいて現在の電力消費値を決定するように構成され得る。
【0059】
いくつかの実装形態では、メモリコントローラは、環境条件に基づいて決定された個別電力消費値を調整し、調整された個別電力消費値に基づいて、現在の電力消費値を決定する、ように構成され得る。
【0060】
いくつかの実装形態では、各タイプのメモリ動作は、所定の電力消費値に対応する。メモリコントローラは、複数のメモリ動作のそれぞれのタイプを対応する所定の電力消費値にマッピングすることに基づいて個別電力消費値を決定するように構成され得る。
【0061】
いくつかの実装形態では、複数のメモリ動作のタイプは、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、シングルプレーン動作、情報転送動作、符号化動作、又は復号動作のうちの少なくとも1つを含む。
【0062】
いくつかの実装形態では、現在の電力消費値、追加電力消費値、又は所定の電力消費閾値のうちの少なくとも1つは、所定の基準に基づいて計算された相対値の形態である。
【0063】
いくつかの実装形態では、少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、メモリセルのアレイに結合された制御論理回路とを含む。少なくとも1つのメモリデバイスのメモリコントローラ及び制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給される。少なくとも1つのメモリデバイスのメモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給される。メモリコントローラは、メモリ動作の第1のキューを維持し、第1のキュー内のメモリ動作の実行は第1の電源からの電力消費を引き起こし、メモリ動作の第2のキューを維持し、第2のキュー内のメモリ動作の実行は第2の電源からの電力消費を引き起こし、第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定し、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行し、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させる、ように構成される。
【0064】
いくつかの実装形態では、第1のキュー内のメモリ動作は情報転送動作を含む。第2のキュー内のメモリ動作は、読み出し動作、プログラム動作、又は消去動作のうちの少なくとも1つを含む。
【0065】
いくつかの実装形態では、メモリデバイスは、3次元(3D)NANDメモリデバイスを含む。
【0066】
別の態様では、メモリシステムの電力を管理するための方法が提供される。方法は、複数のメモリ動作を並列に実行する総同時電力消費を示す現在の電力消費値を決定することを含み得る。方法はまた、後続のメモリ動作を実行する追加の電力消費を示す追加電力消費値を決定することを含み得る。方法は、現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えるかどうかを判定することを更に含み得る。現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えないと判定した後、方法は、複数のメモリ動作と並列に後続のメモリ動作を実行することを含み得る。
【0067】
いくつかの実装形態では、方法はまた、現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えると判定した後に、後続のメモリ動作の実行を遅延させることを含む。
【0068】
いくつかの実装形態では、方法はまた、複数のメモリ動作のそれぞれのタイプを決定することと、複数のメモリ動作にそれぞれ対応する個々の電力消費値を、それぞれのタイプに基づいて決定することと、個別電力消費値に基づいて現在の電力消費値を決定することと、を含む。
【0069】
いくつかの実装形態では、方法はまた、環境条件に基づいて決定された個別電力消費値を調整することと、調整された個別電力消費値に基づいて、現在の電力消費値を決定することと、を含む。
【0070】
いくつかの実装形態では、各タイプのメモリ動作は、所定の電力消費値に対応する。方法は、複数のメモリ動作のそれぞれのタイプを対応する所定の電力消費値にマッピングすることに基づいて個別電力消費値を決定することを含む。
【0071】
いくつかの実装形態では、複数のメモリ動作のタイプは、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、シングルプレーン動作、情報転送動作、符号化動作、又は復号動作のうちの少なくとも1つを含む。
【0072】
いくつかの実装形態では、現在の電力消費値、追加電力消費値、又は所定の電力消費閾値のうちの少なくとも1つは、所定の基準に基づいて計算された相対値の形態である。
【0073】
いくつかの実装形態では、メモリシステムは、少なくとも1つのメモリデバイスと、少なくとも1つのメモリデバイスに結合されたメモリコントローラとを含む。少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、メモリセルのアレイに結合された制御論理回路とを含む。少なくとも1つのメモリデバイスのメモリコントローラ及び制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給される。少なくとも1つのメモリデバイスのメモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給される。方法は、メモリ動作の第1のキューを維持することであって、第1のキュー内のメモリ動作の実行は第1の電源からの電力消費を引き起こす、ことと、メモリ動作の第2のキューを維持することであって、第2のキュー内のメモリ動作の実行は第2の電源からの電力消費を引き起こす、ことと、第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定することと、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行することと、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させることとを含む。
【0074】
いくつかの実装形態では、第1のキュー内のメモリ動作は情報転送動作を含む。第2のキュー内のメモリ動作は、読み出し動作、プログラム動作、又は消去動作のうちの少なくとも1つを含む。
【0075】
いくつかの実装形態では、メモリデバイスは、3次元(3D)NANDメモリデバイスを含む。
【0076】
更に別の態様では、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は命令を記憶し、命令は、メモリシステムのメモリコントローラによって実行されると、メモリコントローラに、メモリシステムの電力を管理する方法を実行させる。方法は、複数のメモリ動作を並列に実行する総同時電力消費を示す現在の電力消費値を決定することを含み得る。方法はまた、後続のメモリ動作を実行する追加の電力消費を示す追加電力消費値を決定することを含み得る。方法は、現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えるかどうかを判定することを更に含み得る。現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えないと判定した後、方法は、複数のメモリ動作と並列に後続のメモリ動作を実行することを含み得る。
【0077】
いくつかの実装形態では、方法はまた、現在の電力消費値と追加電力消費値との合計が所定の電力消費閾値を超えると判定した後に、後続のメモリ動作の実行を遅延させることを含む。
【0078】
いくつかの実装形態では、方法はまた、複数のメモリ動作のそれぞれのタイプを決定することと、複数のメモリ動作にそれぞれ対応する個々の電力消費値を、それぞれのタイプに基づいて決定することと、個別電力消費値に基づいて現在の電力消費値を決定することと、を含む。
【0079】
いくつかの実装形態では、方法はまた、環境条件に基づいて決定された個別電力消費値を調整することと、調整された個別電力消費値に基づいて、現在の電力消費値を決定することと、を含む。
【0080】
いくつかの実装形態では、各タイプのメモリ動作は、所定の電力消費値に対応する。方法は、複数のメモリ動作のそれぞれのタイプを対応する所定の電力消費値にマッピングすることに基づいて個別電力消費値を決定することを含む。
【0081】
いくつかの実装形態では、複数のメモリ動作のタイプは、読み出し動作、プログラム動作、消去動作、マルチプレーン動作、シングルプレーン動作、情報転送動作、符号化動作、又は復号動作のうちの少なくとも1つを含む。
【0082】
いくつかの実装形態では、現在の電力消費値、追加電力消費値、又は所定の電力消費閾値のうちの少なくとも1つは、所定の基準に基づいて計算された相対値の形態である。
【0083】
いくつかの実装形態では、メモリシステムは、少なくとも1つのメモリデバイスと、少なくとも1つのメモリデバイスに結合されたメモリコントローラとを含む。少なくとも1つのメモリデバイスの各々は、メモリセルのアレイと、メモリセルのアレイに結合された制御論理回路とを含む。少なくとも1つのメモリデバイスのメモリコントローラ及び制御論理回路は、第1の所定の電力消費閾値を有する第1の電源によって電力供給される。少なくとも1つのメモリデバイスのメモリセルのアレイは、第2の所定の電力消費閾値を有する第2の電源によって電力供給される。方法は、メモリ動作の第1のキューを維持することであって、第1のキュー内のメモリ動作の実行は第1の電源からの電力消費を引き起こす、ことと、メモリ動作の第2のキューを維持することであって、第2のキュー内のメモリ動作の実行は第2の電源からの電力消費を引き起こす、ことと、第1のキュー及び第2のキュー内の後続のメモリ動作の実行がそれぞれ対応する第1の電源及び第2の電源を過負荷にするかどうかを別々に判定することと、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にしない第1のキュー又は第2のキュー内の後続のメモリ動作を実行することと、判定に基づいて、対応する第1の電源又は第2の電源を過負荷にする第1のキュー又は第2のキュー内の後続のメモリ動作を遅延させることとを含む。
【0084】
いくつかの実装形態では、第1のキュー内のメモリ動作は情報転送動作を含む。第2のキュー内のメモリ動作は、読み出し動作、プログラム動作、又は消去動作のうちの少なくとも1つを含む。
【0085】
いくつかの実装形態では、メモリデバイスは、3次元(3D)NANDメモリデバイスを含む。
【0086】
特定の実装形態の前述の説明は、様々な用途に容易に修正及び/又は適合させることができる。したがって、そのような適合及び修正は、本明細書に提示された教示及びガイダンスに基づいて、開示された実装形態の均等物の意味及び範囲内にあることが意図されている。
【0087】
本開示の幅及び範囲は、上述の典型的な実装形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲及びそれらの均等物に従ってのみ定義されるべきである。