JP2023501416A - ソリッドステート・ストレージ・デバイス用メモリ・コントローラ - Google Patents

ソリッドステート・ストレージ・デバイス用メモリ・コントローラ Download PDF

Info

Publication number
JP2023501416A
JP2023501416A JP2022526259A JP2022526259A JP2023501416A JP 2023501416 A JP2023501416 A JP 2023501416A JP 2022526259 A JP2022526259 A JP 2022526259A JP 2022526259 A JP2022526259 A JP 2022526259A JP 2023501416 A JP2023501416 A JP 2023501416A
Authority
JP
Japan
Prior art keywords
array
bit
mode
cells
memory controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022526259A
Other languages
English (en)
Inventor
パパンドレウ、ニコラス
プレトカ、ローマン
ストイカ、ラドゥ
イオアンノウ、ニコラス
トミック、ササ
ポーツィディス、キャララムポス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023501416A publication Critical patent/JP2023501416A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

シングルビット記憶用とマルチビット記憶用とに選択的に構成可能なセルを含む不揮発性メモリ・セルのアレイの動作を制御する方法、コンピュータ・プログラムおよびシステムを開示する。該方法は、メモリ・コントローラがアレイがシングルビット記憶用に構成されたセルとマルチビット記憶用に構成されたセルの両方を含むハイブリッド・モードと、アレイ内のすべてのセルがマルチビット記憶用に構成されたマルチビット・モードとの動作のために、アレイを選択的に構成することを含む。さらにメモリ・コントローラがアレイの改良耐久性に関連付けられた定義済み閾値レベルを超えるアレイ容量使用率に対応してアレイのハイブリッド・モードの構成とマルチビット・モードの構成とを動的に切り換えることを含む。

Description

本発明は、一般にはソリッドステート・ストレージ・デバイス用メモリ・コントローラに関し、より具体的には、メモリ・セルを含む不揮発性メモリ・アレイ用コントローラに関する。
ソリッドステート・ストレージは、ディスクおよびテープなどの従来型磁気媒体または光媒体とは異なり、データを記憶するために典型的には集積回路(IC)における電子回路に基づくメモリ・セルを使用する不揮発性メモリである。フラッシュ・メモリ・デバイスなどのソリッドステート・ストレージ・デバイス(SSD)は、可動部品がないため、従来型ストレージ・デバイスよりも堅牢である。SSDは、きわめて大きい帯域幅と、大幅な電力節減と、ハード・ディスク・ドライブ(HDD)よりも数桁優れたランダムI/O(入力/出力)性能とを示す。
SSDでは、ストレージは、それぞれがデータを書き込むことができる1組の記憶場所を含む、記憶域または「ブロック」に編成された不揮発性メモリ・セルのアレイを含む。たとえばフラッシュ・メモリは、「ページ」と呼ばれるデータ書き込み場所を含む記憶ブロックに編成される。各記憶場所は、1組のメモリ・セルを含み、メモリ・セルのそれぞれが数ビットのデータを記憶することができ、ストレージは、1セル当たり異なるビット数を記憶するために選択的に構成可能とすることができる。たとえば、ほとんどの3D NANDフラッシュ・チップは、複数の記憶モード、典型的には、各セルが1ビットを記憶するシングルビットまたはSLC(シングルレベル・セル)記憶モードと、各セルが複数のビットを記憶するマルチビット記憶モードでのブロックの選択的構成をサポートする。現在のマルチビット・フラッシュ・モードには、2ビット/セルを記憶するMLC(マルチレベル・セル)モード、3ビット/セルを記憶するTLC(トリプルレベル・セル)モード、および4ビット/セルを記憶するQLC(クアッドレベル・セル)モードがある。SLCメモリは最速であり、最も耐久性があるが、容量は最小であり、コストが最も高く、一方、QLCメモリは最も安価であるが、最も低速で、耐久性が最も低い。
メモリ・コントローラは、不揮発性メモリ・アレイの動作を制御するための専用制御装置を提供する。メモリ・コントローラは、メモリ構成、データ配置、アドレス・マッピング、および、メモリ・アレイの内部管理に必要な様々なその他の動作を制御する。アレイが異なる記憶モードをサポートする場合、ハイブリッド・メモリ・コントローラが、利用可能記憶ブロックを異なるモードで動作する2つのプールに分割することができる。たとえば、ハイブリッドSLC/QLCフラッシュ・コントローラは、物理フラッシュ・ブロックを、一方がSLCモード、他方がQLCモードで使用される2つのプールに分割する。ハイブリッド・コントローラの利点としては、耐久性向上と、読み取りレイテンシ低減と、書き込みレイテンシの低減および予測可能性向上がある。
本発明の態様は、シングルビット記憶用とマルチビット記憶用に選択的に構成可能なセルを含む不揮発性メモリ・セルのアレイの動作を制御する方法、コンピュータ・プログラム製品およびシステムを開示する。方法は、メモリ・コントローラが、アレイがシングルビット記憶用に構成されたセルとマルチビット記憶用に構成されたセルの両方を含むハイブリッド・モードと、アレイ内のすべてのセルがマルチビット記憶用に構成されたマルチビット・モードとの動作のためにアレイを選択的に構成することを含む。方法は、メモリ・コントローラが、アレイの改良耐久性に関連付けられた定義済み閾値レベルを超えるアレイ容量使用率に対応してアレイのハイブリッド・モードの構成とマルチビット・モードの構成とを動的に切り換えることをさらに含む。
本発明の一実施形態による、ストレージ・デバイスの略図を示す例示の図である。 本発明の一実施形態による、図1のデバイスのメモリ・コントローラによって行われるメモリ制御方法の例示のステップを示すフローチャートである。 本発明の一実施形態による、図1のデバイスにおけるメモリ・アレイのハイブリッド・モード構成を示す例示の図である。 本発明の一実施形態による、メモリ・アレイの耐久性対容量利用率特性を示す例示の図である。 本発明の一実施形態による、様々なシステム・パラメータと異なるワークロード・タイプとを有するメモリ・アレイの特性を示す例示の図である。 本発明の一実施形態による、様々なシステム・パラメータと異なるワークロード・タイプとを有するメモリ・アレイの特性を示す例示の図である。 本発明の一実施形態による、様々なシステム・パラメータと異なるワークロード・タイプとを有するメモリ・アレイの特性を示す例示の図である。 本発明の一実施形態による、様々なシステム・パラメータと異なるワークロード・タイプとを有するメモリ・アレイの特性を示す例示の図である。 本発明の一実施形態による、様々なシステム・パラメータと異なるワークロード・タイプとを有するメモリ・アレイの特性を示す例示の図である。 本発明の一実施形態による、異なるワークロード・タイプに対応するメモリ制御方法の例示のステップを示すフローチャートである。 本発明の一実施形態による、好ましいメモリ制御方法の例示のステップを示すフローチャートである。
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(たとえば光ファイバ・ケーブルを通る光パルス)、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの従来型手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明する。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることを理解されたい。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。一部の別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。たとえば、連続して示されている2つのブロックは、関与する機能に依って、実際には実質的に並行して実行されてもよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、指定されている機能または動作を実行する専用ハードウェア・ベースのシステムによって実装可能であるか、または専用ハードウェアとコンピュータ命令との組合せを実施することができることも理解されたい。
図1のブロック図に、本発明を実現するストレージ・デバイスの全体的アーキテクチャを示す。この実施例では、デバイス1は、シングルビット記憶用とマルチビット記憶用に選択的に構成可能なフラッシュ・メモリ・セルのアレイ(すなわちフラッシュ・メモリ・アレイ2)を有するフラッシュ・ストレージ・デバイスである。例示の一実施形態では、アレイ2は3D NANDフラッシュ・アレイである。デバイス1は、メモリ・アレイ2の動作を制御するためのメモリ・コントローラ3を含む。メモリ・コントローラ3は、制御論理を含む。例示の実施形態では、メモリ・コントローラ3は、フラッシュ制御プロセッサ(FCP)4と、(デバイスへのデータ読み取り要求および書き込み要求に応じるための)読み取り/書き込み(R/W)インターフェース(I/F)5と、(FCP4とフラッシュ・メモリ2との間のデータ/制御信号通信用の)フラッシュ・リンク・インターフェース6とによって制御論理を実装する。デバイス1は、メモリ・コントローラ3の動作中の様々なメタデータの一時記憶用の揮発性メモリ(たとえばDRAM7)をさらに含む。
一般に、フラッシュ・メモリ・アレイ2は、1つまたは複数のチップ、またはチップのパッケージを含み、各チップは、1つまたは複数のフラッシュ・ストレージ・ダイを含むことができ、それぞれが1つまたは複数のチップまたはパッケージを含み得る1つまたは複数の記憶チャネルを提供することができる。実施形態によっては、フラッシュ・メモリ・アレイ2は、より大きなストレージ・アレイの一部であってもよく、追加のフラッシュまたはその他のストレージを提供する。
本発明の様々な実施形態において、読み取りおよび書き込み動作は、フラッシュ・メモリ2におけるページごとに行われ、一方、消去動作は、ブロックごとに行われる。データは、フラッシュ・ブロックが正常に消去された後でのみ、そのフラッシュ・ブロックに書き込むことができ、これは、書き込みスループットとレイテンシを向上させるために「ライトアウトオブプレース」方式を使用することができる。「ライトアウトオブプレース」方式では、記憶されているデータ・ページがフラッシュ・ストレージにおいてインプレースで更新されない。その代わりに、更新ページは別の空きフラッシュ・ページに書き込まれ、それに関連する古いフラッシュ・ページは無効としてマークされる。
したがって、「ライトアウトオブプレース」方式およびその他のフラッシュ記憶特性は、フラッシュ・ストレージの内部管理のために行われる特定の「ハウスキーピング」動作を使用する。たとえば、ページが更新され、古いページが無効化されると、無効化されたデータを削除し、記憶場所を新たな入力データのために解放するために、「ガベージ・コレクション」プロセスを行うことができる。ガベージ・コレクション・プロセスは、消去の前に占有フラッシュ・ブロックからまだ有効であるデータを回復し、それによって有効ページを別のフラッシュ・ブロックにコピーする。
ガベージ・コレクションおよびブロック消去は、実質的にフラッシュ・メモリ内のデータを移動することを含む他の内部管理プロセスの一部として行うこともできる。たとえば、ウェア・レベリングはフラッシュの摩耗特性に対処する。フラッシュ・メモリは、記憶完全性が劣化し始めるまでの有限数のプログラム消去(P/E)サイクルを有する。ウェア・レベリング手順は、不均一な摩耗を回避するために、プログラム消去サイクル数に基づいて、すべての利用可能フラッシュ・ブロックにわたって書き込み-消去サイクルを均等に分散させることを目的としている。
様々な実施形態において、メモリ・コントローラ3は、デバイス1への読み取り/書き込み要求に応じるためにホストと直接通信することができる。例示の実施形態では、メモリ・コントローラ3は、ストレージ・システム内の複数のデバイスに対するホスト要求に応じるより上位のコントローラによって管理されてもよい。FCP4は、デバイス1の動作一般を制御することができ、R/Wインターフェース5を介して受け取った要求に応答してフラッシュ・メモリ・アレイ2におけるデータ読み取りおよび書き込み動作を管理する。FCP4は、フラッシュ・アレイに記憶されているデータのためにDRAM7内でアドレス・メタデータを維持するFTL(フラッシュ変換層)ソフトウェア層を動作させる。アドレス・メタデータは、入力データ・ブロックに関連付けられた論理ブロック・アドレスを、ホスト/上位コントローラからフラッシュ上の物理アドレス(フラッシュ・ページ番号)にマップする。例示の実施形態では、FCP4は、アレイ2におけるすべての内部管理プロセスを制御することができ、それによってDRAM7におけるすべての関連付けられたデータを維持する。
実施形態によっては、内部管理機能は、FCP4が上位制御を提供して、フラッシュ・チップ上のローカル・コントローラによって全体的または部分的に制御されてもよい。具体的には、FCP4は(以下で詳述するように)フラッシュ・メモリ・アレイ2の構成を制御するための機能を備える。FCP4は、誤り訂正コーディング/デコーディングおよび、「ホット」データと「コールド」データを識別し、それに応じて記憶方針を調整するヒート認識機能などの、フラッシュ・ストレージにおける典型的な様々なその他のプロセスも実装可能である。
この実施例では、メモリ・コントローラ3の制御機能は、プログラム命令(たとえば、FCP4によって実行されるプログラム・モジュール)により実装される。一般に、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含み得る。FCP4は、1つまたは複数のプロセッサを含む処理デバイスによって実装可能であり、本発明の実施形態により、記載されている動作を行うために処理デバイスによって実行可能なプログラム命令を記憶する、プロセッサ・メモリ(ROM、RAM、キャッシュ・メモリなどを含む)を含むことができる。FCP4は、たとえば、プログラム命令を実行するための組み込みCPUを備えたFPGAを含む。他の実施形態では、メモリ・コントローラ3の制御論理はハードワイヤード論理回路によって実装されてもよい。しかし、一般に、制御論理は、ハードウェアまたはソフトウェアあるいはその組合せによって実装可能であり、当業者には様々な実装形態が本明細書の説明から明らかであろう。
ストレージ・デバイス1の動作時、FCP4は、アレイがシングルビット記憶用に構成されたセルとマルチビット記憶用に構成されたセルの両方を含む、ハイブリッド・モードと、アレイ内のすべてのセルがマルチビット記憶用に構成されたマルチビット・モードでの動作のためにフラッシュ・メモリ・アレイ2を選択的に構成することができる。この実施例では、FCPは、フラッシュ・メモリ・アレイ2をハイブリッドSLC/QLCモードまたはQLC専用モードでの動作のために構成する。ハイブリッド・モードでは、アレイは、メモリ・セルがシングルビット記憶用のSLCセルとして構成されているSLCブロックのプールと、セルが4ビット記憶用のQLCセルとして構成されているQLCブロックのプールとを含む。QLC専用モードでは、アレイ内のすべてのブロックがQLC記憶用に構成される。
図2は、構成制御プロセスの例示のステップを示すフローチャートである。様々な実施形態において、FCP4は、本発明の様々な実施形態により図2に示すフローチャートの処理ステップを行う。
デバイス1のための実行時、FCP4はフラッシュ・メモリ・アレイ2の現在の容量使用率を判定する(ステップ10)。FCP4は、アレイ内の占有(または空き)フラッシュ・ブロックの数または割合によって、またはアレイ内の有効データ(たとえば有効フラッシュ・ページ)の量または割合によってなど、任意の好都合な尺度を使用して容量使用率を判定することができる。本実施形態では、FCP4は、QLC専用モードでの合計アレイ容量(すなわち可能最大アレイ容量)のうちの割合として、容量使用率、有効データの量を測定する。また、FCP4は、電源投入時にFCP4によってDRAM7にロードされる(たとえば各実行時間の終わりにフラッシュ・メモリ・アレイ2に記憶される)メタデータから現在の容量使用率を判定することができる。
決定ステップ11において、FCP4は、アレイ容量使用率が、アレイのためにFCP4において定義されている閾値レベルTHより少ないか否かを判定する。(たとえばデバイス1の最初の使用時に)アレイ容量使用率が閾値レベルTHより少ないとの判定(決定ステップ11のY分岐)に応答して、FCP4はハイブリッド・モードを構成する(ステップ12)。
ステップ12で、FCP4は、ハイブリッドSLC/QLCモードでの動作のために、リンクI/F6を介した制御信号によってアレイ2の構成を制御する。図3は、ハイブリッド動作モードを示す例示の図である。したがって、ハイブリッド・モードで、FCP4はフラッシュ・メモリ2を、SLCフラッシュ・ブロックのプール20とQLCフラッシュ・ブロックのプール21とに構成する。例示の一実施形態では、SLCブロックとQLCブロックとの比は固定している。
ハイブリッド・モードの動作中に、FCP4はSLCプール20内のシングルビット・セルに優先的にデータを書き込み、次に、SLCプールにおける記憶容量を空ける必要があるときにデータをSLCプールからプール21内のQLCセルに移動する。したがって、SLCプール20はデータが最初に書き込まれることが好ましい初期記憶階層を提供する。さらに、SLC階層のブロックが使い果たされると、ガベージ・コレクション(GC)プロセスが通常の方式でブロックを「クリーンにする」。ここで、必要であれば、SLC階層に有効データを再配置することができるか、またはQLC階層に退去させ、デステージすることができる。アレイ2への書き込み負荷が高い場合、FCP4はデータをQLCプール21に直接入れてもよい。QLC階層内で、ガベージ・コレクション・プロセスがその階層内でデータを再配置する(すなわちSLC階層にデータが移行されない)。
ハイブリッド・モードでの動作中、FCP4はフラッシュ・メモリ・アレイ2の容量使用率を監視する(ステップ13)。例示の実施形態では、FCP4は、フラッシュ・ページのメタデータとして維持されている有効フラグに基づいて容量使用率を監視することができる。決定ステップ14で、FCP4は容量使用率が閾値レベルTHを超えたか否かを判定する。
容量使用率が閾値レベルTHを超えていないとの判定に応答して(決定ステップ14のN分岐)、FCP4の動作は、ハイブリッド・モード動作の継続監視のためにステップ13に戻る。容量使用率が閾値THを超えたとの判定に応答して(決定ステップ14のY分岐)、FCP4の動作はマルチビット・モードを構成するためにステップ15に進む。
ステップ15で、FCP4は、リンクI/F6を介した制御信号によって、QLC専用モードでの動作のためにフラッシュ・メモリ・アレイ2の構成を制御する。また、ステップ11に戻ると、任意の動作期間の開始において、現在の使用率が閾値THを超えるとの判定に応答して(決定ステップ11のN分岐)、FCP4の動作はステップ13においてQLCモードで進行する。様々な実施形態において、FCP4はアレイを動的に構成する。たとえば、FCP4は、SLCプール20におけるすべてのフラッシュ・ブロックをQLC記憶用に再構成する。例示の実施形態では、FCP4はまず、SLCブロックにおける有効ページをQLCブロックに移動し、次に、解放されたSLCブロックをQLCモード記憶用に再構成する。FCP4は、フラッシュ・ブロックの動作モードを1つのモードから別のモードに転換するために、典型的にはフラッシュ・チップのためのベンダー指定のコマンド/動作の手順を使用することができる。
QLC専用モードで、FCP4は(ステップ16で)容量使用率を監視する。また、ステップ17で、FCP4は、容量使用率が閾値THより下がったか否かを判定する。容量使用率が閾値THより下がったとの判定に応答して、FCP4の動作はステップ12に戻り、FCP4はアレイをハイブリッド・モード動作用に動的に再構成する。したがって、FCP4は、アレイ2における空きQLCブロックからSLCブロックのプール20、およびハイブリッド・モード動作を構成し、次に(前述のように)続行する。
本発明の実施形態により、上記の動作は、アレイ容量使用率が閾値レベルTHを超えると常にFCP4がアレイのハイブリッド・モードの構成とマルチビット・モードの構成とを動的に切り換えながら、デバイス1の実行時間の間、継続する。以下でさらに説明するように、閾値THは、前述の動作モードの動的切り換えによってアレイの耐久性が向上するように定義される。実行時間の終わりに、FCP4は、次の電源投入時に取り出すために、DRAM7に格納されている必要なメタデータをデバイスの不揮発性メモリ(たとえばフラッシュ・アレイ2)に記憶する。記憶されるメタデータには、(ステップ10から)FCP4にロードするためのアレイの現在の容量使用率が含まれ得る。
本発明の実施形態は、切り換え閾値THの適切な値がストレージ・デバイス1におけるフラッシュ・メモリ・アレイ2の特定の設計および動作に関するシステム・パラメータに依存することを認識している。具体的には、閾値の選定は、シングルビット・モードとマルチビット・モードにおける本来のセル耐久性、アレイのサイズ、アレイのワークロード・タイプ、(後述のように)ハイブリッド・モードが静的であるか動的であるか、ハイブリッド・モードでのアレイの動作のために書き込みヒート区別が利用可能にされているかを含み得る、システム・パラメータのセットに依存する。
本来のセル耐久性は、メモリ・セル設計(たとえば使用される特定の3D NAND技術)に依存し、本来のP/Eサイクル数(すなわち、劣化または障害が発生する前にセルがサポートすることができるP/Eサイクル数)で表して指定することができる。本来のセル耐久性は、(たとえば、指定ページ数/セル数を含むフラッシュ・ブロックの)ブロックごとに定義されてもよい。アレイのサイズは、アレイにおいて使用される特定の種類/容量のチップ数、パッケージ数(たとえばチップ/パッケージ当たりの指定フラッシュ・ブロック数)など、およびオーバープロビジョニングに使用される容量によって示されてもよい。アレイ・サイズ・パラメータは、ハイブリッド・モード動作に使用されるSLC/マルチビット・ブロックの数をさらに示してもよい。
ワークロード・タイプは、様々な標準定義(たとえば無作為、または(書き込みワークロードのXパーセントがアドレス空間のYパーセントになるようにジップフィアン分布のスキュー係数が選定されるX/Yの様々な値の)ジップフィアンX/Yなどのジップ分布)に従って定義可能である。アレイのハイブリッド・モード動作のために、(シングルビット・セルとマルチビット・セルとの比が静的な)静的ハイブリッド・モードと、(比が動的に決定される)動的ハイブリッド・モードとのうちの一方をデバイスのために指定することができる。書き込みヒート区別機能の起動/停止も指定可能である。この機能は、メモリ・コントローラが「ホット」データと「コールド」データとを識別することができるようにし、マルチビット・プールを主としてコールド・データのために使用して、ホット・データをより高速なアクセスのためにSLCプールに優先的に書き込み/維持することができるようにする。
例示の一実施形態では、ストレージ・デバイス1のためにすべての関連するシステム・パラメータが予め決定されてもよい。次に、ハイブリッド・モードおよびマルチビット・モードのアレイ耐久性と容量使用率との関係の分析に基づいて、デバイスのために適切な切り換え閾値THを定義することができる。図4は、ハイブリッドSLC/QLCモードとQLC専用モードの例示のデバイス(たとえばストレージ・デバイス1)の耐久性対容量使用率特性を示す例示の図である。図4に図示されている例は、例示のNANDフラッシュ・デバイスにおける、SLCブロックの場合の100kとQLCブロックの場合の8.5kの、無作為書き込みワークロードおよび本来のブロック耐久性(P/Eサイクル(pec))に基づいている。
図4は、(上記で定義したような)容量使用率に対する、障害が発生する(たとえばアレイ劣化が指定された限界を超える)前のデバイス書き込みサイクル数で表したアレイ耐久性をプロットしている。したがって、図4は、それを超えるとハイブリッドSLC/QLCモードと比較してQLC専用モードが有利になる20%の容量使用率を、ちょうど超える固有遷移点を示す。したがって、ハイブリッド・モードとマルチビット・モードとの切り換えは、アレイの全体としての耐久性を向上させることができる。本発明の実施形態は、デバイス耐久性が最初に摩耗するプールによって決定づけられる従来のハイブリッド・デバイスを有意に上回る性能向上をもたらすことができる。プールの摩耗不均衡は実際問題として起こり得るものであり、1つのプールの耐久性が切れると、他のプールの残りの残存耐久性を利用することができない。
上述の例示の実施形態では、切り換え閾値THは、図4に示す最適値(すなわち、モードがハイブリッド・モードとマルチビット・モードとの間のより良好なアレイ耐久性遷移をもたらす容量使用率レベル)として定義される。したがって、本発明の実施形態は、動的モード切り換え動作によってフラッシュ・メモリ・アレイ2の耐久性を最適化することができる。
本発明の様々な実施形態は、デバイスの既知のシステム・パラメータに基づいて閾値THを固定値として定義することができる。図5Aから図5Eに、本発明の様々な実施形態による、異なるシステム・パラメータによって耐久性/容量使用率特性がどのように変化するかを示す例を示す。
図5Aは、本発明の様々な実施形態による、図4の特性が、異なるハイブリッド・モード・パラメータによりいかに変更されるかを示す例示の図を含む。図5Aでは、図4のハイブリッド・モード曲線が、静的ハイブリッド・モードによる動作に対応する「静的ハイブリッド(ベースライン)」としてラベル付けされている。別のハイブリッド・モードは、現在の使用率、ワークロード特性、SLCプールおよびQLCプールのそれぞれの現在の占有空間、またはNANDフラッシュ・メモリ・セルの特性(たとえば、SLC専用モードとQLC専用モードのブロックの平均耐久性の比)あるいはこれらの組合せに従ってSLC/QLC比を適応させるように、SLCプールのサイズが初期動作段階に動的に調整される、動的または適応ハイブリッド・モードである。SLC/QLC比が設定された後は、再評価の時点までブロックはそれらブロックの現在のプールに静的に割り当てられたままとなる。一実施形態では、ブロックはその後それらの現在のプールに静的に割り当てられたままとなり、一方、他の実施形態ではブロックはウェア・レベリングのためにプール間で切り換わってもよい。
図5Aの他の曲線は、動的ハイブリッド・モード(「動的ハイブリッド・モード(ベースライン)」)、アクティブ書き込みヒート区別付き静的ハイブリッド・モード(「静的ハイブリッド(ヒート認識)」)、およびアクティブ書き込みヒート区別付き動的ハイブリッド・モード(「動的ハイブリッド(ヒート認識)」)の特性を示す。それぞれの場合において、図5Aは、ハイブリッドSLC/QLCモードと比較してQLC専用モードが有利となる特異点を含む。さらに、図5Aは、対応する矢印によって最適切り換え閾値を示している。
図5Bおよび図5Cに、異なるワークロード・タイプの同等の曲線を示す。図5Bは、ジップフィアン95/20に対応し、図5Cはジップフィアン80/20に対応する。図5Dおよび図5Eに、例示のNANDフラッシュ・デバイスにおける、SLCブロックの場合の40kおよびQLCブロックの場合の4.5kの本来のブロック耐久性を有する様々なモードのさらなる曲線を示す。ハイブリッド・モードからQLC専用モードへの切り換えの最適閾値は、前述のように示されている。ここでは一部のハイブリッド・モードの場合、ハイブリッド・モード耐久性がすべての容量使用率においてQLC専用耐久性を上回ることに留意されたい。
一部のストレージ・デバイスでは、1つまたは複数のシステム・パラメータがデバイスの寿命にわたって変動する場合がある。具体的には、ワークロード・タイプは通例、デバイス動作中に変動し、これは図5Aから図5Cによって実証されているように、最適切り換え閾値に有意な影響を及ぼす。したがって例示の一実施形態では、メモリ・コントローラ3の制御論理は、アレイの動作中にワークロード・タイプを監視し、ワークロード・タイプに基づいて切り換え閾値レベルを動的に定義するようになされる。
図6は、本発明の実施形態による、図1のデバイスの基本動作を示すフローチャートである。ステップ30で、FCP4が実行時にフラッシュ・メモリ・アレイ2の現在の容量使用率をロードする。
ステップ31で、FCP4は現在のワークロード・タイプを判定する。様々な実施形態において、FCP4は、ユーザI/Oワークロードに敏感な1つまたは複数の尺度を維持し、利用することによって、読み取り/書き込みトラフィックの測定値に基づいて、一般に知られている方式でワークロード・タイプを判定することができる。例としては、SLC階層およびQLC階層のいわゆるライト・アンプリフィケーション、SLC階層およびQLC階層の新たな書き込みにより無効化されたページ数、SLC階層およびQLC階層のガベージ・コレクションで有効であることがわかったページの1ブロック当たりの平均数、およびヒート認識階層化を採用した場合の特定のヒート・レベルが割り当てられたページ数がある。FCP4は、(たとえば各実行時間の終わりにフラッシュ・メモリ・アレイ2に記憶される)メタデータから現在のワークロード・タイプを判定することができる。また、FCP4は、電源投入時に現在のワークロード・タイプをDRAM7にロードすることができる。ワークロードが未知の場合(たとえばデバイス1の最初の使用時)、FCP4は無作為書き込みワークロードを採ることができる。
ステップ32で、FCP4は現在のワークロード・タイプと他の既知のシステム・パラメータとに基づいて、ワークロード依存切り換え閾値THWを定義する。様々な実施形態において、FCP4は、ステップ32で、現在のデバイス・パラメータおよび異なるワークロード・タイプの最適閾値を示す予め定義されたテーブルまたはその他のデータ構造を使用して、閾値を定義することができる。そのようなテーブル/構造は、FCP4の永続メモリに記憶されてもよく、または実行中にDRAM7に記憶され、電源投入時に永続ストレージ(たとえばアレイ2)にロードされてもよい。
ステップ33で、FCP4は、(上記で概説したように)現在の容量使用率と閾値THWとの比較に基づいて、ハイブリッド・モードまたはQLC専用モードでの動作用にフラッシュ・メモリ・アレイ2を構成する。次に、FCP4は、(ステップ34で)容量使用率の監視と、(決定ステップ35で)閾値THWとの比較を行いながら、構成されたモードでのアレイ動作に移ることができる。閾値を超えたとの判定(決定ステップ35のY分岐)に応答して、FCP4の動作はステップ33に戻り、FCP4はアレイを他方のモードでの動作用に再構成する。また、閾値を超えないとの判定(決定ステップ35のN分岐)に応答して、FCP4の動作はワークロード・タイプの監視に進む(ステップ36)。
いずれのモードでも、FCP4は引き続き(ステップ36で)ワークロード・タイプを監視する。ワークロード・タイプの変化の検出(決定ステップ37のY分岐)に応答して、FCP4の動作はステップ32に戻り、FCP4は新たなワークロード・タイプのために閾値THWを再定義する。次に、動作は、ステップ32の閾値比較に基づいて、必要であればアレイが他方のモードに再構成された状態で、前述のように継続する。また、ワークロード・タイプの変化が検出されないことに応答して(決定ステップ37のN分岐)、FCP4の動作は次に、(ステップ34での)容量使用率の監視付きで構成されたモードでのアレイ動作に移ることができる。
デバイスのパラメータによっては、特定のワークロード・タイプの場合にすべての容量使用率においてハイブリッド・モード耐久性がマルチビット・モード耐久性を上回る場合がある(たとえば図5Bおよび図5C)。FCP4がステップ37でそのようなワークロード・タイプを検出した場合、FCP4は(ステップ32で)閾値THWを100%の容量使用率と定義することができ、それによって動作は(必要であれば)ハイブリッド・モードに戻り、ワークロード・タイプが変化するまでそのモードに留まる。
図6に図示し、図6に関して説明した実施形態は、FCP4が所与のデバイスにおける変化するワークロードに適応することができるようにする。例示の実施形態では、FCP4は1つまたは複数のシステム・パラメータの変化に対応するように、切り換え閾値を適切に定義することができる。さらなる実施形態では、FCP4は、ストレージ・デバイス・アレイのすべての通常範囲と、異なるパラメータの組合せとを包含する複数の異なるパラメータ・セットに対応することができる。
予め記憶されたテーブル/データ構造が、所定の特性に基づいて、様々なワークロード・タイプを含む異なるパラメータ・セットの切り換え閾値の適切な値を示すことができる。その場合、FCP4は、所与のアレイ設計および動作パラメータに適応可能な汎用メモリ・コントローラを提供することができる。様々な実施形態において、FCP4は、アレイ2の動作の前に、アレイのシステム・パラメータのセットを受け取り、これらのパラメータに基づいて切り換え閾値を定義するようになされる。
また、本発明の実施形態により、FCP4は、所与のデバイスの最初の電源投入時、または各実行時間の開始時、または動作中にパラメータが変化したとき、あるいはこれらの組合せの時点に、システム・パラメータをロードし、それに従って切り換え閾値を選択してもよい。具体的には、一部のデバイスにおいて、デバイス動作中にワークロード以外のパラメータが変動する場合がある。たとえば、ハイブリッド・モードは、異なる動作期間について動的または静的として選択可能であってもよい。書き込みヒート区別も、選択的に起動/停止されてもよい。場合によっては、アクティブなフラッシュ・メモリ・アレイ2のサイズも(たとえば、デバイスで利用可能な最大NANDパッケージ数から)選択可能とすることができる。
図7は、本発明の様々な態様による、FCP4の実施形態の基本動作ステップを示すフローチャートである。ステップ40で、FCP4は現在の動作期間のためにシステム・パラメータをロードする。このパラメータ・セットは、現在の容量使用率とワークロード・タイプとを含む(上述のような)可変パラメータの現在の状態を、前もってFCP4にロードされていない場合には「固定」パラメータ(たとえばアレイ・セル・タイプの本来のpec値)とともに示すことができる。
ステップ41で、FCP4は、現在のパラメータ・セットのワークロード依存切り換え閾値THWPを定義する。ステップ42で、FCP4は、現在の容量使用率と閾値THWPとの比較に基づいて、ハイブリッド・モードまたはQLC専用アレイ構成のいずれかを選択する。
ステップ43で、FCP4はアレイを選択されたモードでの動作のために、指定された動作パラメータ(たとえば動的または静的ハイブリッド・モード、書き込みヒート階層化アクティブ/イナクティブなど)によって構成する。システム構成は、データおよび読み取り経路構成(たとえば、フラッシュI/F6におけるキュー管理)、SLC/QLCプール構成のサイズ(たとえばアクティブ・アレイ・サイズに基づく)、およびSLC/QLCプール構成に依存する全般的フラッシュ管理またはその他の機能(たとえば、ガベージ・コレクション、キャリブレーションなど)を含み得る。次にデバイス動作は、この構成のために、FCP4が指定されたパラメータに従ってアレイの動作を制御する動作に移行する。図7の残りのステップ44からステップ47は、上記で詳細に説明した図6のステップ34からステップ37に対応する。
上述の例示の実施形態には、様々な変更および修正を加えることができることを理解されたい。たとえば、ハイブリッド・モード/マルチビット・モードは、QLC記憶以外のマルチビット記憶(たとえばTLCまたはMLC記憶)を使用してもよい。本発明を実現するメモリ・コントローラは、NANDフラッシュ・セル以外のセルに基づく不揮発性メモリ・アレイ(たとえば、NORフラッシュ・セル、PCM(相変化メモリ)セル、RRAM(抵抗変化型RAM)セル、NVRAM(不揮発性RAM)セルなど)とともに使用することができる。
一般に、本明細書で本発明を実現する装置に関連して特徴について説明している場合、対応する特徴は本発明を実現する方法/コンピュータ・プログラム製品に備えられてもよく、その逆も同様である。
本発明の様々な実施形態の説明は例示のために示したものであり、網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に対する技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定された。

Claims (20)

  1. シングルビット記憶用とマルチビット記憶用とに選択的に構成可能なセルを含む不揮発性メモリ・セルのアレイの動作を制御するためのコンピュータ・システムであって、
    1つまたは複数のコンピュータ・プロセッサと、
    メモリ・コントローラと、
    1つまたは複数のコンピュータ可読記憶媒体と、
    前記コンピュータ可読記憶媒体に記憶されたプログラム命令とを含み、前記プログラム命令は、前記メモリ・コントローラに、
    前記アレイがシングルビット記憶用に構成されたセルとマルチビット記憶用に構成されたセルの両方を含むハイブリッド・モードと、前記アレイ内のすべてのセルがマルチビット記憶用に構成されたマルチビット・モードとの動作のために前記アレイを選択的に構成させ、
    前記アレイの改良耐久性に関連付けられた定義済み閾値レベルを超えるアレイ容量使用率に対応して前記アレイの前記ハイブリッド・モードの構成と前記マルチビット・モードの構成とを動的に切り換えさせるように、
    メモリ・コントローラの処理デバイスによって実行可能である、コンピュータ・システム。
  2. 前記閾値レベルは、アレイ耐久性に基づいて前記ハイブリッド・モードと前記マルチビット・モードとの間で遷移するための容量使用率レベルとして定義される、請求項1に記載のコンピュータ・システム。
  3. 前記アレイの動作中にワークロード・タイプを監視し、
    前記ワークロード・タイプに基づいて前記閾値レベルを動的に定義するように、
    前記メモリ・コントローラを使用する実行のために前記コンピュータ可読記憶媒体に記憶されたプログラム命令をさらに含む、請求項1に記載のコンピュータ・システム。
  4. 前記アレイの動作の前に、前記アレイのシステム・パラメータのセットを受け取り、
    前記パラメータに基づいて前記閾値レベルを定義するように、
    前記メモリ・コントローラを使用する実行のために前記コンピュータ可読記憶媒体に記憶されたプログラム命令をさらに含む、請求項1に記載のコンピュータ・システム。
  5. 前記アレイの動作中にワークロード・タイプを監視し、
    前記ワークロード・タイプに基づいて前記閾値レベルを動的に定義するように、
    前記メモリ・コントローラを使用する実行のために前記コンピュータ可読記憶媒体に記憶されたプログラム命令をさらに含む、請求項4に記載のコンピュータ・システム。
  6. システム・パラメータの前記セットは、前記シングルビット・モードおよび前記マルチビット・モードでの本来のセル耐久性を示す、請求項4に記載のコンピュータ・システム。
  7. システム・パラメータの前記セットは前記アレイのサイズを示す、請求項4に記載のコンピュータ・システム。
  8. システム・パラメータの前記セットは、前記ハイブリッド・モードの前記アレイの動作のための、シングルビット・セルとマルチビット・セルとの比が静的である静的ハイブリッド・モードと、前記比が動的に決定される動的ハイブリッド・モードとのうちの一方を示す、請求項7に記載のコンピュータ・システム。
  9. システム・パラメータの前記セットは、前記ハイブリッド・モードの前記アレイの動作のために書き込みヒート区別が有効にされているか否かを示す、請求項4に記載のコンピュータ・システム。
  10. パラメータの前記セットに従って前記アレイの動作を制御するように、前記メモリ・コントローラを使用する実行のために前記コンピュータ可読記憶媒体に記憶されたプログラム命令をさらに含む、請求項4に記載のコンピュータ・システム。
  11. 前記ハイブリッド・モードでの前記アレイの動作中に、前記アレイのシングルビット・セルに優先的にデータを書き込み、
    シングルビット・セルからマルチビット・セルにデータを移動し、それによって前記シングルビット・セルにおける記憶容量を空けるように、
    前記メモリ・コントローラを使用する実行のために前記コンピュータ可読記憶媒体に記憶されたプログラム命令をさらに含む、請求項1に記載のコンピュータ・システム。
  12. ストレージ・デバイスをさらに含み、
    前記ストレージ・デバイスは、シングルビット記憶用とマルチビット記憶用とに選択的に構成可能なセルを含む不揮発性メモリ・セルのアレイを含む、請求項1に記載のコンピュータ・システム。
  13. 前記アレイはフラッシュ・メモリ・セルを含む、請求項12に記載のコンピュータ・システム。
  14. 前記フラッシュ・メモリ・セルは、シングルビット記憶用と4ビット記憶用とに選択的に構成可能な、請求項13に記載のコンピュータ・システム。
  15. シングルビット記憶用とマルチビット記憶用とに選択的に構成可能なセルを含む不揮発性メモリ・セルのアレイの動作を制御する方法であって、
    メモリ・コントローラが、前記アレイがシングルビット記憶用に構成されたセルとマルチビット記憶用に構成されたセルの両方を含むハイブリッド・モードと、前記アレイ内のすべてのセルがマルチビット記憶用に構成されたマルチビット・モードとの動作のために前記アレイを選択的に構成することと、
    前記メモリ・コントローラが、前記アレイの改良耐久性に関連付けられた定義済み閾値レベルを超えるアレイ容量使用率に対応してアレイの前記ハイブリッド・モードの構成と前記マルチビット・モードの構成とを動的に切り換えることとを含む、方法。
  16. 前記閾値レベルは、アレイ耐久性に基づいて前記ハイブリッド・モードと前記マルチビット・モードとの間で遷移するための容量使用率レベルとして定義される、請求項15に記載の方法。
  17. 前記メモリ・コントローラが前記アレイの動作中にワークロード・タイプを監視することと、
    前記メモリ・コントローラが、前記ワークロード・タイプに基づいて前記閾値レベルを動的に定義することとをさらに含む、請求項15に記載の方法。
  18. 前記アレイの動作の前に、前記メモリ・コントローラが前記アレイのシステム・パラメータのセットに基づいて前記閾値レベルを定義することをさらに含み、
    前記パラメータは、
    前記シングルビット・モードと前記マルチビット・モードとにおける本来のセル耐久性と、
    前記アレイのサイズと、
    前記アレイのワークロード・タイプと、
    前記ハイブリッド・モードの前記アレイの動作のための、シングルビット・セルとマルチビット・セルとの比が静的である静的ハイブリッド・モードと、前記比が動的に決定される動的ハイブリッド・モードとのうちの一方と、
    前記ハイブリッド・モードの前記アレイの動作のために書き込みヒート区別が使用可能にされているか否か、とからなるグループから選択された情報を示す、請求項15に記載の方法。
  19. 前記メモリ・コントローラが前記アレイの動作中にワークロード・タイプを監視することと、
    前記メモリ・コントローラが、前記ワークロード・タイプに基づいて前記閾値レベルを動的に定義することとをさらに含む、請求項18に記載の方法。
  20. シングルビット記憶用とマルチビット記憶用とに選択的に構成可能なセルを含む不揮発性メモリ・セルのアレイの動作を制御するためのコンピュータ・プログラム製品であって、プログラム命令が実現されたコンピュータ可読媒体を含み、前記プログラム命令は、メモリ・コントローラに、
    前記アレイがシングルビット記憶用に構成されたセルとマルチビット記憶用に構成されたセルの両方を含むハイブリッド・モードと、前記アレイ内のすべてのセルがマルチビット記憶用に構成されたマルチビット・モードとの動作のために前記アレイを選択的に構成させ、
    前記アレイの改良耐久性に関連付けられた定義済み閾値レベルを超えるアレイ容量使用率に対応して前記アレイの前記ハイブリッド・モードの構成と前記マルチビット・モードの構成とを動的に切り換えさせるように、
    前記メモリ・コントローラの処理デバイスによって実行可能な、コンピュータ・プログラム製品。
JP2022526259A 2019-11-18 2020-10-26 ソリッドステート・ストレージ・デバイス用メモリ・コントローラ Pending JP2023501416A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/686,338 2019-11-18
US16/686,338 US11188261B2 (en) 2019-11-18 2019-11-18 Memory controllers for solid-state storage devices
PCT/IB2020/060016 WO2021099863A1 (en) 2019-11-18 2020-10-26 Memory controllers for solid-state storage devices

Publications (1)

Publication Number Publication Date
JP2023501416A true JP2023501416A (ja) 2023-01-18

Family

ID=75909969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022526259A Pending JP2023501416A (ja) 2019-11-18 2020-10-26 ソリッドステート・ストレージ・デバイス用メモリ・コントローラ

Country Status (6)

Country Link
US (1) US11188261B2 (ja)
JP (1) JP2023501416A (ja)
CN (1) CN114730285A (ja)
DE (1) DE112020005695T5 (ja)
GB (1) GB2606885B (ja)
WO (1) WO2021099863A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7302497B2 (ja) * 2020-02-07 2023-07-04 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
CN113190180A (zh) * 2021-05-26 2021-07-30 北京自由猫科技有限公司 一种基于混合介质的存储装置及分布式存储系统
JP2023039459A (ja) * 2021-09-09 2023-03-22 キオクシア株式会社 メモリシステムおよび方法
CN116206647B (zh) * 2022-01-27 2024-02-23 北京超弦存储器研究院 动态存储器及其读写方法、存储装置
US11798643B1 (en) 2022-03-15 2023-10-24 Western Digital Technologies, Inc. Non-volatile storage system with hybrid SLC wear leveling

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100875539B1 (ko) 2007-01-17 2008-12-26 삼성전자주식회사 프로그램 방식을 선택할 수 있는 메모리 시스템
US8407400B2 (en) 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8355280B2 (en) 2010-03-09 2013-01-15 Samsung Electronics Co., Ltd. Data storage system having multi-bit memory device and operating method thereof
TWI471862B (zh) * 2011-08-19 2015-02-01 Silicon Motion Inc 快閃記憶體控制器
US10359933B2 (en) 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
KR102386703B1 (ko) 2017-09-13 2022-04-14 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법
US10325668B2 (en) 2017-04-05 2019-06-18 Micron Technology, Inc. Operation of mixed mode blocks
TWI651727B (zh) 2017-06-07 2019-02-21 力晶科技股份有限公司 非依電性儲存裝置、非依電性記憶體積體電路及其非依電性記憶體的操作方法
US10460817B2 (en) 2017-07-13 2019-10-29 Qualcomm Incorporated Multiple (multi-) level cell (MLC) non-volatile (NV) memory (NVM) matrix circuits for performing matrix computations with multi-bit input vectors
US10545685B2 (en) 2017-08-30 2020-01-28 Micron Technology, Inc. SLC cache management
CN107527655A (zh) 2017-09-12 2017-12-29 山东大学 一种闪存存储器混合读写方法及混合读写闪存存储器
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US20190034105A1 (en) 2017-12-28 2019-01-31 Intel Corporation Storage device having programmed cell storage density modes that are a function of storage device capacity utilization
US20200327953A1 (en) * 2019-04-11 2020-10-15 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks

Also Published As

Publication number Publication date
US20210149592A1 (en) 2021-05-20
GB2606885B (en) 2023-10-11
WO2021099863A1 (en) 2021-05-27
CN114730285A (zh) 2022-07-08
DE112020005695T5 (de) 2022-09-01
GB202208932D0 (en) 2022-08-10
US11188261B2 (en) 2021-11-30
GB2606885A (en) 2022-11-23

Similar Documents

Publication Publication Date Title
US11188261B2 (en) Memory controllers for solid-state storage devices
US8239617B1 (en) Enterprise data storage system using multi-level cell flash memory
KR102351660B1 (ko) 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법
US11966329B2 (en) Address map caching for a memory system
KR20090042035A (ko) 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
US10956049B2 (en) Wear-aware block mode conversion in non-volatile memory
US11543980B2 (en) Allocating variable media types of memory devices in a memory system
US20200272331A1 (en) Optimization of memory systems based on performance goals
US20220206874A1 (en) Determination of workload distribution across processors in a memory system
JP7486534B2 (ja) ストレージ・システムにおけるブロック・プール・サイズの適合
US11379032B2 (en) Power management integrated circuit with in situ non-volatile programmability
US20240028261A1 (en) Stack management in memory systems
JP5594647B2 (ja) ストレージ装置及びその制御方法
US11698742B2 (en) Garbage collection in a memory component using an adjusted parameter
US11797199B2 (en) Balancing utilization of memory pools of physical blocks of differing storage densities
US12013762B2 (en) Meta data protection against unexpected power loss in a memory system
US20240061589A1 (en) Code rate as function of logical saturation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220612

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20220613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240430