JP2022515541A - ストレージデバイスにおけるシーケンシャルデータ最適化サブリージョン - Google Patents
ストレージデバイスにおけるシーケンシャルデータ最適化サブリージョン Download PDFInfo
- Publication number
- JP2022515541A JP2022515541A JP2021538202A JP2021538202A JP2022515541A JP 2022515541 A JP2022515541 A JP 2022515541A JP 2021538202 A JP2021538202 A JP 2021538202A JP 2021538202 A JP2021538202 A JP 2021538202A JP 2022515541 A JP2022515541 A JP 2022515541A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory array
- particle size
- mapping table
- table entry
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
メモリコントローラを使用して、メモリアレイを第一部分及び第二部分にパーティション化することを含み、第一部分及び第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、装置及び方法を開示する。メモリコントローラは、第一粒度の第一論理対物理(L2P)マッピングテーブルエントリを第一用途のために指定されるメモリアレイの第一部分に割り当て、第二粒度の第二L2Pマッピングテーブルエントリを第二用途のために指定されるメモリアレイの第二部分に割り当て、第二粒度は第一粒度に等しくない。メモリコントローラは、第一粒度及び第二粒度をメモリアレイに格納し、第一L2Pマッピングテーブルエントリ及び第二L2Pマッピングテーブルエントリの少なくとも一部分をメモリコントローラのL2Pキャッシュに格納する。
Description
[優先権出願]
本出願は、2018年12月31日に出願された米国出願整理番号第16/237,134号への優先権の利益を主張するものであり、その全体が参照により本明細書に援用されている。
本出願は、2018年12月31日に出願された米国出願整理番号第16/237,134号への優先権の利益を主張するものであり、その全体が参照により本明細書に援用されている。
メモリデバイスは、ホストシステム(例えば、コンピュータまたはその他の電子デバイス)のためのデータの電子的なストレージを提供する半導体回路である。メモリデバイスは、揮発性または不揮発性であり得る。揮発性メモリは、データを保持するために電力を必要とし、とりわけ、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)などのデバイスを含む。不揮発性メモリは、電力が供給されていないときに格納されたデータを保持することができ、とりわけ、フラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、または磁気抵抗型ランダムアクセスメモリ(MRAM)などの抵抗可変メモリなどのデバイスを含む。
ホストシステムは、典型的には、ホストプロセッサ、ホストプロセッサをサポートするための第一の量のメインメモリ(例えば、多くの場合、DRAMなどの揮発性メモリ)、及びメインメモリに加えてまたはメインメモリから分離してデータを保持するための追加のストレージを提供する1つまたは複数のストレージシステム(例えば、多くの場合、フラッシュメモリなどの不揮発性メモリ)を含む。
ソリッドステートドライブ(SSD)などのストレージシステムは、メモリコントローラ及びいくつかのダイまたは論理ユニット(LUN)を含む1つまたは複数のメモリデバイスを含むことができる。特定の実施例では、各ダイは、ダイロジックまたはダイプロセッサなどの、いくつかのメモリアレイ及びその上の周辺回路網を含むことができる。メモリコントローラは、通信インタフェース(例えば、双方向パラレル通信インタフェースまたはシリアル通信インタフェース)を介してホストデバイス(例えば、ホストプロセッサまたはインタフェース回路網)と通信するように構成されるインタフェース回路網を含むことができる。メモリコントローラは、メモリデバイスとホストデバイスとの間でデータ(例えば、エラーデータまたはアドレスデータなどのユーザデータ及び関連する整合性データなど)を転送するための読み出し動作または書き込み動作、メモリデバイスからデータを消去するための消去動作などのメモリ動作または命令に関連してホストシステムからコマンドまたは動作を受信したり、ドライブ管理動作(例えば、データマイグレーション、ガベージコレクション、ブロック廃棄)を遂行したりすることができる。
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字の接尾辞を有する類似数字は、類似構成要素の異なる事例を表し得る。図面は、概して、限定ではなく例として、本文書で論じられる様々な実施形態を示す。
ソフトウェア(例えば、プログラム)、命令、オペレーティングシステム(OS)、及びその他のデータは、典型的には、ストレージシステムに記憶され、ホストプロセッサによる使用のためにメインメモリによってアクセスされる。メインメモリ(例えば、RAM)は、典型的には、ストレージシステムの大部分のメモリデバイス(例えば、SSDなどの不揮発性)よりも高速であり、より高価であり、当該大部分のメモリデバイスとは異なるタイプのメモリデバイス(例えば、揮発性)である。メインメモリに加えて、ホストシステムは、多くの場合、メインメモリよりも高速で、特定の実施例では、ホストプロセッサの速度に近いかそれを超える速度で動作するように構成されるが、密度がより低くコストがより高い、スタティックメモリ(例えば、キャッシュ、多くの場合、SRAM)のグループなどの異なるレベルの揮発性メモリを含むことができる。他の実施例では、望まれるホストシステムのパフォーマンス及びコストに応じて、より多いかまたはより少ないレベルまたは量のメインメモリまたはスタティックメモリを使用することができる。
SSDなどのフラッシュメモリデバイスは、典型的には、1トランジスタ、フローティングゲートメモリセルの1つ以上のグループを含む。フラッシュメモリアレイアーキテクチャの2つの一般的なタイプには、NANDアーキテクチャ及びNORアーキテクチャが含まれる。メモリアレイのフローティングゲートメモリセルは、通常、行列に配置される。
論理対物理(L2P)テーブルを使用して、ユーザデータのブロック(論理ブロックアドレスまたはLBA)を物理アドレスにマッピングする、NANDストレージデバイスのパフォーマンスは、フラッシュトランスレーションレイヤ(FTL)の使用によって大きく影響される。現在のL2Pテーブルは、ユーザデータの4KBチャンクごとに4バイトの物理アドレスを使用した結果、一度にL2Pキャッシュに収まることができない大きなマッピングテーブルになる。発明の主題は、ストレージデバイスの一部分をパーティション化し、このパーティションの指定された用途に基づいて異なるマッピングテーブル粒度(granularity)を用いてパーティションを操作することを提供する。パーティションをより大きな粒度でマッピングすることにより、そのパーティションについてのランダム読み出しパフォーマンス及びシーケンシャル書き込みパフォーマンスが向上し(マッピングテーブルの多くが所与の一度でキャッシュに収まるため)、オペレーティングシステムなどのソフトウェアに、より迅速にロードすることができる利点、及び全体的なユーザエクスペリエンスを向上させることができる利点を与える。
さまざまな実施形態は、ストレージデバイスのユーザ領域を複数のLBA範囲にパーティション化し、LBA範囲ごとのL2Pマッピングテーブルの粒度を特定のユースケース(またはパーティション化されたLBA範囲の指定された用途)にカスタマイズすることを提供する。ストレージコントローラ内のSRAMは、さまざまな実施形態では、各ユースケースのパフォーマンスを最適化するために、L2Pマッピングテーブルごとにカスタマイズされる。したがって、発明の主題は、カスタマイズされたランダム書き込み及びランダム読み出しパフォーマンスを生成するために、さまざまなLBA範囲に対してカスタマイズされたL2Pマッピング粒度を定義し、各LBA範囲を指定された用途のために使用する。例えば、オペレーティングシステム(O/S)またはキーアプリケーションは、起動時間またはロード時間を改善するように、ランダム読み出しパフォーマンスに最適化される領域に配置され、重要性の低い、または商業的に不利なアプリケーションは、汎用領域に配置される。したがって、パーティションは、ビデオのストリーミング、またはO/Sのロードなど、特定の指定された用途に合わせて調整されることができる。
NANDフラッシュベースのストレージデバイスは、ユーザデータのブロック(LBA)を物理アドレスにマッピングするためにFTLを必要とする。小さなホスト書き込みを効率的にサポートするためには、L2Pマッピングテーブルの通常の粒度は、一般に、単一の物理アドレスが4096バイトのユーザデータを保持している、少数のホストLBAについて単一の物理アドレスエンティティである。4KBチャンクのユーザデータごとに4バイトの物理アドレスを有するため、マッピングテーブルのサイズは通常非常に大きくなる。ほとんどのデバイスでは、大きなマッピングテーブルを有することは禁止されており、通常、マッピングテーブルの小さなサブセットのみが、L2Pキャッシュ中のストレージコントローラ内で一度に利用可能である。
さまざまな実施形態では、ランダム書き込み操作の効率とL2Pキャッシュの効率との間のマッピングの粒度にはトレードオフがある。第一例では、4KBのユーザデータチャンク(1つ以上のLBAを含む)を4バイトの物理アドレスにマッピングすることができる。第二例では、8KBのユーザデータチャンク(4KBのチャンクの2倍のLBAを含む)を4バイトの物理アドレスにマッピングすることができる。第一例では4KBのユーザ書き込みを実行するには、データを直接書き込み、マッピングテーブルを新しい物理アドレスによって更新することができる。第二例では4KBのユーザ書き込みを実行するには、新しく書き込まれたデータに属する別の4KBのデータチャンクを記憶媒体から読み出し、新しい4KBのデータに加える必要があり、単一のエントリのマッピングテーブルの更新に加えて、新しく構築された8KBチャンクをメモリに書き込む。第二例では、この操作は、ストレージの読み出し-変更-書き込みであり、単純な書き込みである第一例よりも効率が低い。したがって、第一例は、上記の第二例よりもはるかに優れたパフォーマンスを有する。ただし、第二例では、L2Pマッピングキャッシュは2倍のスペースをマッピングすることができる。32KBのL2Pキャッシュサイズを用いて、第一例は、32768/4=8192の物理アドレスを格納することができる。各物理アドレスは、合計32MBのマッピングされた範囲について4KBを指す。第二例では、32KBのキャッシュは、8192個の物理アドレスを保持するのに十分である。各物理アドレスは、合計64MBのマッピングされた範囲について8KBを指す。
さまざまな実施形態では、発明の主題は、ストレージシステムの一部分をパーティション化し、これらのパーティションを異なるマッピングテーブル粒度を用いて操作する。一実施形態では、256GBのユーザストレージ領域が利用可能であるため、最初に16GBのデータ(第一領域)は、単一の4バイトの物理アドレスに対して256KBの粒度でマッピングされることができ、残りの240GB(第二領域)は、単一の4バイトの物理アドレスに対して4KBの粒度を使用してマッピングされることができる。256KB未満のすべての書き込みは256KBの読み出し-変更-書き込みを必要とするため、大きな粒度でマッピングされたストレージシステムの第一領域は、低いランダム書き込みパフォーマンスを提示する。サイズが4KBまでの書き込みに対して読み出し-変更-書き込みのペナルティがないため、より小さな粒度にマッピングされたストレージシステムの第二領域は、より優れたランダム書き込みパフォーマンスを提示する。トレードオフのその他の側では、256KBのコントローラSRAMキャッシュ((16*1024*1024*1024)/(256*1024))のみを使用して、第一領域の16GBの範囲全体をマッピングすることができるが、256KBの第二領域については、256MBのユーザ領域のみをマッピングする。第一領域及び第二領域の両方が同じシーケンシャル読み出し及び書き込みパフォーマンスを提示するが、第一領域についてのマッピングテーブル全体が一度でSRAMに常駐することができるため、第一領域は優れたランダム読み出しパフォーマンスを提示する。第二領域については、マッピングテーブルの適切な部分をロードしてLBAに関連する物理アドレスを見いだすためのもの、及びこのデータをロードするための第二読み出しという、2つの読み出しシーケンスを第二領域の読み出しが使用するため、ランダム読み出しパフォーマンスが低下する。
指定された用途のためにパーティションに粒度を指定することにより、発明の主題は、コントローラSRAMマッピングテーブルリソースの大幅に向上したユーザエクスペリエンス、及びより効率的な用途を提供する。例えば、頻繁に更新されていない、オペレーティングシステム及びキーアプリケーションのシーケンシャルロードなどのシーケンシャル書き込みに対して、そして大きなシーケンシャル書き込みに関して、第一領域を最も良く利用する。第一領域内のアプリケーションが優れたロード時間を有するように、第一領域は向上した読み出しパフォーマンスを提示する。このタイプの領域は、さまざまな実施形態では、モバイルデバイス、自動車デバイス、またはモノのインターネット(IoT)内のO/Sに有用である。携帯電話の製造元は、独自のアプリケーションを第一領域に配置することでこの利点を利用することができるため、これら独自のアプリケーションは、デフォルトで第二領域または他の領域に常駐するアフターマーケットアプリケーションを上回る。第二領域は、ユーザがすでに慣れている一般的なエクスペリエンスを提示する、通常の書き込み用途に最も良く利用される。
その上、いくつかの実施形態では、ある特定のパーティションに対してより高速タイプのメモリを使用することによって異なる速度でパーティションを操作することができることで、これらの利点をより顕著にすることができる。例えば、トリプルレベルセルメモリ(TLC)NANDの代わりに、シングルレベルセルメモリ(SLC)を使用することができる、または指定されたパーティションに3D XPointタイプのメモリを使用することができる。
さまざまな実施形態は、オーバーラップしていないLBA範囲の領域のテーブルに定義される、ストレージデバイス内のユーザ領域の1つ以上の領域の定義を提供する。マッピングテーブルの粒度の特定用途向け選択を使用することにより、発明の主題は、ランダム書き込みパフォーマンスのためにコントローラL2PマップSRAMリソースを交換して、ストレージデバイスのユーザ領域の、アプリケーションごとのユーザエクスペリエンス、及び領域ごとのユーザエクスペリエンスを最適化する。さまざまな実施形態では、LBAまたはLBAグループをストレージデバイスに書き込むと、領域テーブルに対してLBAをチェックし、LBAについて適切な書き込み粒度を決定し、適切な読み出し-変更-書き込みを実行し(もしあれば)、選択された領域の属性に応じて、適切なマッピングテーブルの更新を行う。また、発明の主題は、ガベージコレクション操作における領域属性の保存を提供する。したがって、ガベージコレクションを実行するときに、領域の適切なマッピングテーブルチャンクサイズを使用して読み出し及び書き込みを実行する。L2Pマップデータについてのメモリコントローラリソースが限られているため、マーケットプレイスで有利なパフォーマンスのために特定のデバイス、特定のユースケース、及び/またはユースモデルについて粒度を最適化することができる。
発明の主題のさまざまな実施形態では、さまざまな粒度を不揮発性メモリアレイに恒久的に格納する。したがって、恒久的な操作モードではストレージデバイスの領域に複数の粒度を使用することができ、メモリアレイにアクセスすることで、これらの粒度にアクセスすることができる。これらの粒度は、さまざまな実施形態では、設定可能な読み出しサービスのさまざまなクラスを提供する。さまざまな実施形態では、ストレージデバイスの複数の領域に異なる粒度を割り当てることができる。一例では、ストレージデバイスの2つの領域に異なる粒度を割り当てる。別の例では、ストレージデバイスの3つの領域に異なる粒度を割り当てる。発明の主題の範囲から逸脱することなく、ストレージデバイスの他の数の領域に異なる粒度を割り当てることができる。一部の実施形態は、L2Pマップ全体を保持するのに十分なDRAMがないデバイスを対象とする。
本開示の態様は、メモリアレイ、1つ以上の論理対物理(L2P)マッピングテーブルの少なくとも一部分を格納するように設定されるランダムアクセスメモリ、及びメモリコントローラを含む、ストレージシステムを対象とする。メモリアレイを第一部分及び第二部分にパーティション化することであって、第一部分及び第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、パーティション化することと、第一用途のために指定されるメモリアレイの第一部分に第一粒度の第一L2Pマッピングテーブルエントリを割り当てることと、第二用途のために指定されるメモリアレイの第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、第二粒度は第一粒度に等しくない、割り当てることと、第一L2Pマッピングテーブルエントリ及び第二L2Pマッピングテーブルエントリの少なくとも一部分をランダムアクセスメモリに格納することと、を含む操作を実行するようにメモリコントローラをプログラムする。
図1は、通信インタフェース(I/F)115(例えば、双方向パラレル通信インタフェースまたはシリアル通信インタフェース)を介して通信するように構成されるホストデバイス105及びストレージシステム110を含む例示的なシステム(例えば、ホストシステム)100を示す。ホストデバイス105は、ホストプロセッサ106(例えば、ホスト中央処理ユニット(CPU)もしくは他のプロセッサもしくは処理デバイス)、または他のホスト回路(例えば、メモリ管理ユニット(MMU)、インタフェース回路、評価回路107など)を含むことができる。特定の実施例では、ホストデバイス105は、ホストプロセッサ106の動作をサポートするために、メインメモリ108(例えば、DRAMなど)及び任意選択で、スタティックメモリ109を含むことができる。
ストレージシステム110は、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込み式MMC(eMMC(商標))デバイス、または1つ以上の他のメモリデバイスを含むことができる。例えば、ストレージシステム110がUFSデバイスを含む場合、通信インタフェース115は、1つ以上のJoint Electron Device Engineering Council(JEDEC)規格(例えば、一般に、JEDEC UFSホストコントローラインタフェース(UFSHCI)3.0と称される、JEDEC規格D223D(JESD223D)など)に定義されるようなシリアル双方向インタフェースを含むことができる。別の例では、ストレージシステム110がeMMCデバイスを含む場合、通信インタフェース115は、1つ以上のJEDEC規格(例えば、一般にJEDEC eMMC規格5.1と称される、JEDEC規格D84-B51(JESD84-A51)など)に定義されるような、複数のパラレル双方向データライン(例えば、DAT [7:0])、及び1つ以上のコマンドラインを含むことができる。他の例では、ストレージシステム110は、1つ以上の他のメモリデバイスを含むことができるか、または通信インタフェース115は、ホストデバイス105及びストレージシステム110に応じて、1つ以上の他のインタフェースを含むことができる。
ストレージシステム110は、メモリコントローラ111、ランダムアクセスメモリ(またはキャッシュ)113及び不揮発性メモリ112を含むことができる。一例では、不揮発性メモリは、それぞれが周辺回路を含み、メモリコントローラ111によって制御される1つ以上のフラッシュメモリデバイスなどの、いくつかのメモリデバイス(例えば、ダイまたはLUN)を含むことができる。
フラッシュメモリデバイスは、典型的には、1トランジスタ、フローティングゲートメモリセルの1つ以上のグループを含む。フラッシュメモリアレイアーキテクチャの2つの一般的なタイプには、NANDアーキテクチャ及びNORアーキテクチャが含まれる。メモリアレイのフローティングゲートメモリセルは、通常、行列に配置される。アレイの行内の各メモリセルのゲートをアクセスライン(例えば、ワードライン)に結合する。NORアーキテクチャでは、アレイの列内の各メモリセルのドレインをデータライン(例えば、ビットライン)に結合する。NANDアーキテクチャでは、アレイの列内の各メモリセルのドレインを、ソースラインとビットラインとの間に、ソースからドレインに合わせて直列に結合する。
NOR、NAND、3Dクロスポイント(Xポイント)、ホログラフィックRAM(HRAM)、MRAM、または1つ以上の他のアーキテクチャ半導体メモリアレイ内の各メモリセルを個別に、または合わせて、1つまたは複数のプログラムされた状態にプログラムすることができる。シングルレベルセル(SLC)は、2つのプログラムされた状態(例えば、1または0)のいずれかでセルあたり1ビットのデータを表すことができる。マルチレベルセル(MLC)は、セルあたり2ビット以上のデータを、プログラムされた状態の数(例えば、2n、ここでnはデータのビット数)で表すことができる。特定の実施例では、MLCは、4つのプログラムされた状態のうちの1つで2ビットのデータを記憶することができるメモリセルを指すことができる。トリプルレベルセル(TLC)は、8つのプログラムされた状態のうちの1つでセルあたり3ビットのデータを表すことができる。クワッドレベルセル(QLC)は、16のプログラムされた状態のうちの1つでセルあたり4ビットのデータを表すことができる。MLCは、本明細書では、より広い文脈で、TLC及びQLCなどを含む、セルあたり2ビット以上のデータを記憶することができる(すなわち、3つ以上のプログラムされた状態を表すことができる)任意のメモリセルを指すために使用される。
ストレージシステム110は、マルチメディアカード(MMC)ソリッドステートストレージデバイス(例えば、マイクロセキュアデジタル(SD)カードなど)を含むことができる。MMCデバイスは、ホストデバイス105との複数のパラレルインタフェース(例えば、8ビットパラレルインタフェースなど)を含み、多くの場合、ホストデバイスからコンポーネントを取り外し可能であり、分離している。対照的に、組み込み式MMC(eMMC)デバイスは、回路基板に取り付けられ、ホストデバイスのコンポーネントと見なされ、シリアルATA(SATA)ベースのSSDデバイスに匹敵する読み出し速度を有する。仮想デバイスまたは拡張現実デバイスを完全に有効にすること、増加しつつあるネットワーク速度を利用することなど、モバイルデバイスのパフォーマンスに対する需要は増え続けているため、ストレージシステムは、パラレル通信インタフェースからシリアル通信インタフェースに移行してきた。コントローラ及びファームウェアを含むUFSデバイスは、専用の読み出し/書き込みパスを備えた低電圧差動信号(LVDS)シリアルインタフェースを使用してホストデバイスと通信し、ホストデバイスとストレージシステムとの間の読み出し/書き込み速度をさらに向上させる。
3次元(3D)アーキテクチャ半導体メモリデバイス技術では、垂直フローティングゲートまたは電荷トラップストレージ構造を積層させて、階層の数、物理ページ、及びしたがってメモリデバイス内のメモリセルの密度を増加させることができる。
多くの場合、データは小さな単位としてストレージシステムに任意に格納される。単一のユニットとしてアクセスされた場合でも、データは小さいランダムな4~16kの単一ファイル読み取り(例えば、動作の60%~80%は16kよりも小さい)で受信できる。ユーザ及びカーネルアプリケーションでさえ、データを1つの連続したまとまりのある単位として格納する必要があることを示すことは困難である。ファイルシステムは、一般的に、順次検索スペースではなく、スペース使用量を最適化するように設計されている。
メモリコントローラ111は、ホストデバイス105から命令を受信でき、不揮発性メモリアレイ112の1つまたは複数のメモリセルとのデータ転送(例えば、書き込みまたは消去)または(例えば、読み取り)など、不揮発性メモリ112と通信できる。メモリコントローラ111は、とりわけ、いくつかの構成要素または集積回路などの、電気回路またはファームウェアを含むことができる。例えば、メモリコントローラ111は、メモリアレイの全体にわたるアクセスを制御し、ホストデバイス105とストレージシステム100との間に変換層を提供するように構成された1つ以上のメモリ制御ユニット、回路または構成要素を含むことができる。
不揮発性メモリアレイ112(例えば、3D NANDアーキテクチャ半導体メモリアレイ)は、例えば、いくつかのデバイス、プレーン、ブロック、または物理ページに配列される、いくつかのメモリセルを含むことができる。一実施例として、TLCメモリデバイスは、ページあたり18,592バイト(B)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができる。別の実施例として、MLCメモリデバイスは、ページあたり18,592バイト(B)のデータ、ブロックあたり1024ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができるが、必要な書き込み時間は、対応するTLCメモリデバイスの半分で、プログラム/消去(P/E)サイクルはその2倍である。他の例は、他の数または配置を含むことができる。
図2は、ストレージシステムにデータ最適化サブリージョンを提供する例示的な方法200を示す。方法200は、202で、メモリコントローラによって、メモリアレイを第一部分及び第二部分にパーティション化することであって、第一部分及び第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を含む、パーティション化することと、204で、メモリコントローラによって、第一用途のために指定されるメモリアレイの第一部分に第一粒度の第一L2Pマッピングテーブルエントリを割り当てることとを含む。さらに、方法200は、206で、メモリコントローラによって、第二用途のために指定されるメモリアレイの第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、第二粒度は第一粒度に等しくない、割り当てることと、208で、メモリコントローラによって、第一粒度及び第二粒度をメモリアレイに格納することと、210で、メモリコントローラによって、第一L2Pマッピングテーブルエントリ及び第二L2Pマッピングテーブルエントリの少なくとも一部分をメモリコントローラのL2Pキャッシュに格納することと、を含む。
図3A~3Dは、ストレージシステムにおけるマッピングテーブル領域の例を示す。さまざまな実施形態では、領域テーブルマップをメモリコントローラに格納し、ストレージまたは取得のために使用される領域の粒度を決定するルックアップとして使用する。描写された実施形態では、図3Dの領域4は、この領域が優れた読み出しパフォーマンスを示すため、O/Sまたはストリーミングに使用される。図3Aの領域1は、より通常のパフォーマンスを示し、O/Sまたはストリーミングなどのデータのパフォーマンス需要がない小さなプログラムまたはデータに使用されることができる。さまざまな実施形態では、ユーザは、所望のパフォーマンス及び可用性に応じて、データを書き込む領域のタイプを制御することができる。発明の主題は、さまざまな実施形態では、各領域に格納されたデータの所期のワークロードに基づいて、ストレージシステムのデータ領域をカスタマイズする。
図4は、ブロック(例えば、ブロックA 401A、ブロックB 401Bなど)及びサブブロック(例えば、サブブロックA0 401A0、サブブロックAn 401An、サブブロックB0 401B0、サブブロックBn 401Bnなど)に編成される、複数のメモリセルストリング(例えば、第一~第三A0メモリストリング405A0~407A0、第一~第三Anメモリストリング405An~407An、第一~第三B0メモリストリング405B0~407B0、第一~第三Bnメモリストリング405Bn~407Bnなど)を含む3D NANDアーキテクチャ半導体メモリアレイ400の例示的な概略図を示す。メモリアレイ400は、典型的にはメモリデバイスのブロック、デバイスまたは他のユニットに見られる、より多くの同様の構造の一部を表す。
メモリセルの各ストリングは、ソースライン(SRC)435またはソース側選択ゲート(SGS)(例えば、第一~第三A0SGS 431A0~433A0、第一~第三AnSGS 431An~433An、第一~第三B0SGS 431B0~433B0、第一~第三BnSGS 431Bn~433Bnなど)と、ドレイン側選択ゲート(SGD)(例えば、第一~第三A0SGD 426A0~428A0、第一~第三AnSGD 426An~428An、第一~第三B0SGD 426B0~428B0、第一~第三BnSGD 426Bn~428Bnなど)との間に、ソースからドレインまで、Z方向に積層される電荷蓄積トランジスタ(例えば、フローティングゲートトランジスタ、電荷トラップ構造体など)の複数の階層を含む。3Dメモリアレイ内のメモリセルの各ストリングは、データライン(例えば、ビットライン(BL)BL0~BL6 420~422)としてX方向に沿って配置することができ、物理ページとしてY方向に沿って配置することができる。
物理ページ内では、各階層はメモリセルの行を表し、メモリセルの各ストリングは列を表す。サブブロックは1つ以上の物理ページを含むことができる。ブロックには、いくつかのサブブロック(または物理ページ)(例えば、128、256、384など)を含むことができる。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックは単一の物理ページを有し、各物理ページは3つのメモリセルのストリングを有し、各ストリングは8階層のメモリセルを有するものとして示されているが、他の実施例では、メモリアレイ400は、より多くのまたはより少ないブロック、サブブロック、物理ページ、メモリセルのストリング、メモリセル、または階層を含むことができる。例えば、メモリセルの各ストリングは、必要に応じて、より多くのまたはより少ない階層(例えば、16、32、64、128など)、ならびに電荷蓄積トランジスタ(例えば、選択ゲート、データラインなど)の上または下の半導体材料の1つまたは複数の追加の階層を含むことができる。一実施例として、48GB TLC NANDメモリデバイスは、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。
メモリアレイ400内の各メモリセルは、アクセスライン(例えば、ワードライン(WL)WL00~WL70 410A~417A、WL01~WL71 410B~417Bなど)に結合された(例えば、電気的またはその他の方法で動作可能に接続された)制御ゲート(CG)を含み、アクセスラインは、必要に応じて、特定の階層または階層の一部にわたって制御ゲート(CG)を集合的に結合する。3Dメモリアレイ内の特定の階層、及びそれに応じて、ストリング内の特定のメモリセルは、それぞれのアクセスラインを使用してアクセスまたは制御できる。選択ゲートのグループには、様々な選択ラインを使用してアクセスできる。例えば、第一~第三A0SGD 426A0~428A0に、A0SGDラインSGDA0 425A0を使用してアクセスすることができ、第一~第三AnSGD 426An~428Anに、SGDラインSGDAn 425Anを使用してアクセスすることができ、第一~第三B0SGD 426B0~428B0に、B0SGDラインSGDB0 425B0を使用してアクセスすることができ、第一~第三BnSGD 426Bn~428Bnに、BnSGDラインSGDBn 425Bnを使用してアクセスすることができる。第一~第三A0SGS 431A0~433A0及び第一~第三AnSGS 431An~433Anに、ゲート選択ラインSGS0 430Aを使用してアクセスすることができ、第一~第三B0SGS 431B0~433B0及び第一~第三BnSGS 431Bn~433Bnに、ゲート選択ラインSGS1 430Bを使用してアクセスすることができる。
一実施例では、メモリアレイ400は、各メモリセルの制御ゲート(CG)またはアレイのそれぞれの階層の選択ゲート(またはCGまたは選択ゲートの一部)を結合するように構成されるいくつかのレベルの半導体材料(例えば、ポリシリコンなど)を含むことができる。アレイ内のメモリセルの特定のストリングは、ビットライン(BL)及び選択ゲートなどの組み合わせを使用してアクセスされる、選択される、または制御されることができ、特定のストリング内の1つ以上の階層での特定のメモリセルは、1つ以上のアクセスライン(例えば、ワードライン)を使用して、アクセスされる、選択される、または制御されることができる。
NANDアーキテクチャの半導体メモリアレイでは、選択されたメモリセルを含む特定のデータラインに関連する電流または電圧の変動を感知することにより、選択されたメモリセルの状態にアクセスすることができる。メモリアレイ400は、1つまたは複数のドライバを使用して(例えば、制御回路、1つまたは複数のプロセッサ、デジタル論理などによって)アクセスできる。一実施例では、1つまたは複数のドライバは、特定のメモリセルまたはメモリセルのセット上で実行されることが望ましい操作のタイプに応じて、1つまたは複数のデータライン(例えば、ビットラインBL0~BL2)、アクセスライン(例えば、ワードラインWL0~WL7)、または選択ゲートに特定の電位を駆動することによって、特定のメモリセルまたはメモリセルのセットをアクティブ化することができる。
メモリセルにデータをプログラミングまたは書き込むために、プログラミング電圧(Vpgm)(例えば、1つまたは複数のプログラミングパルスなど)を選択されたワードライン(例えば、WL40)に印加でき、したがって、選択されたワードラインに結合された各メモリセルの制御ゲートに印加できる。プログラミングパルスは、例えば、15Vまたは15V付近で開始することができ、特定の実施例では、各プログラミングパルスの印加中に大きさを上げることができる。プログラム電圧を選択されたワードラインに印加しながら、接地電位(例えば、Vss)などの電位を、プログラミングを対象にするメモリセルのデータライン(例えば、ビットライン)及び基板(このためソースとドレインとの間のチャネル)に印加することができることで、対象にされたメモリセルのチャネルからフローティングゲートまでの電荷移動(例えば、直接注入またはファウラーノルドハイム(FN)トンネリングなど)という結果になる。
対照的に、例えば、それらのような対象にされていないメモリセルのチャネルからフローティングゲートに電荷が移動するのを妨げるなどのために、プログラミングを対象にしていないメモリセルを含む1つ以上のワードラインに通過電圧(Vpass)を印加することができる、またはプログラミングを対象にしていないメモリセルを含むデータライン(ビットラインなど)にインヒビット電圧(Vccなど)を印加することができる。通過電圧は、例えば、印加された通過電圧がプログラミングの対象となるワードラインに近接しているかどうかに応じて可変にすることができる。インヒビット電圧は、接地電位(例えば、Vss)に対する、外部のソースまたは電源(例えば、バッテリ、AC-DCコンバータなど)からの電圧などの、供給電圧(Vcc)を含むことができる。
一例として、対象にしていないメモリセルのプログラミングを禁止するために、またはプログラミングを対象にしていないそれらのようなメモリセルに格納される値を保持するために、プログラミング電圧(例えば、15V以上)をWL40などの特定のワードラインに印加する場合、10Vの通過電圧を、WL30、WL50などのような1つ以上の他のワードラインに印加することができる。印加されたプログラム電圧と対象とならないメモリセルとの間の距離が増加するにつれて、対象とならないメモリセルのプログラミングを避けるために必要な通過電圧を低下させることができる。例えば、15Vのプログラミング電圧をWL40に印加する場合、10Vの通過電圧をWL30及びWL50に印加でき、WL20及びWL60に8Vの通過電圧を印加でき、WL10、WL70などには7Vの通過電圧を印加できる。他の実施例では、通過電圧、またはワードラインの数などは、より高くまたはより低く、またはより多くまたはより少なくできる。
センスアンプは、データライン(例えば、第一、第二、または第三ビットライン(BL0~BL2)420~422)の1つまたは複数に結合でき、特定のデータラインの電圧または電流を検知することによって、それぞれのデータラインの各メモリセルの状態を検出できる。
1つまたは複数のプログラミングパルス(例えば、Vpgm)の印加の間に、検証動作を実行して、選択されたメモリセルがその意図したプログラム状態に達したかどうかを判定できる。選択されたメモリセルが意図されたプログラム状態に達した場合、そのメモリセルをそれ以上プログラミングすることを禁止することができる。選択されたメモリセルが意図されたプログラム状態に達していない場合は、追加のプログラミングパルスを印加することができる。選択されたメモリセルが特定の数のプログラミングパルス(例えば、最大数)の後で意図されたプログラム状態に達していない場合、選択されたメモリセル、またはそのような選択されたメモリセルに関連したストリング、ブロックもしくはページは、不良としてマークすることができる。
メモリセルまたはメモリセルのグループを消去する(例えば、消去は、典型的には、ブロックまたはサブブロックで実行される)には、対象となるメモリセルのワードラインを接地電位(例えば、Vss)などの電位に保持している間に、消去電圧(Vers)(例えば、典型的には、Vpgm)を、(例えば、1つまたは複数のビットラインを使用して、ゲートを選択してなど)消去対象のメモリセルの基板(したがって、ソースとドレインの間のチャネル)に印加して、その結果、対象となるメモリセルのフローティングゲートからチャネルへの電荷を移動させる(例えば、直接注入またはファウラーノルドハイム(FN)トンネリングなど)ことができる。
図5は、複数のメモリセル504を有するメモリアレイ502と、メモリアレイ502との通信を提供する、またはメモリアレイ502上で1つもしくは複数のメモリ動作を実行する、1つまたは複数の回路またはコンポーネントとを含むメモリデバイス500の例示的なブロック図を示す。単一のメモリアレイ502で示されているが、本明細書において、他の実施例では、1つまたは複数の追加のメモリアレイ、ダイ、またはLUNを含めることができる。特定の実施例では、いくつかのダイまたはLUNを有するストレージシステムにおいて、メモリデバイス500は、各ダイまたはLUNのための回路及び構成要素のブロック図を表すことができる。メモリデバイス500は、行デコーダ512、列デコーダ514、センスアンプ520、ページバッファ522、セレクタ524、入力/出力(I/O)回路526、及びメモリ制御ユニット530を含むことができる。
メモリアレイ502のメモリセル504は、第一及び第二ブロック502A、502Bなどのブロックに配置することができる。各ブロックは、サブブロックを含むことができる。例えば、第一ブロック502Aは、第一及び第二サブブロック502A0、502Anを含むことができ、第二ブロック502Bは、第一及び第二サブブロック502B0、502Bnを含むことができる。各サブブロックは、いくつかの物理ページを含むことができ、各ページは、いくつかのメモリセル504を含む。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックはいくつかのメモリセル504を有するものとして示されているが、他の実施例では、メモリアレイ502は、より多くのまたはより少ないブロック、サブブロック、メモリセルなどを含むことができる。他の実施例では、メモリセル504は、いくつかの行、列、ページ、サブブロック、ブロックなどに配置することができ、例えば、アクセスライン506、第一データライン510、または1つまたは複数の選択ゲート、ソースラインなどを使用してアクセスすることができる。
メモリ制御ユニット530は、例えば、所望の動作(例えば、書き込み、読み取り、消去など)を示す1つもしくは複数のクロック信号もしくは制御信号、または1つもしくは複数のアドレスライン516で受信されたアドレス信号(A0~AX)を含む、制御ライン532で受信された1つまたは複数の信号または命令に従って、メモリデバイス500のメモリ動作を制御できる。メモリデバイス500の外部の1つまたは複数のデバイスは、制御ライン532上の制御信号の値、またはアドレスライン516上のアドレス信号の値を制御できる。メモリデバイス500の外部のデバイスの実施例は、限定されないが、ホスト、メモリコントローラ、プロセッサ、または図5に示されていない1つまたは複数の回路または構成要素を含むことができる。
メモリデバイス500は、アクセスライン506及び第一データライン510を使用して、メモリセル504の1つまたは複数へのデータの転送(例えば、書き込みまたは消去)またはメモリセル504の1つまたは複数からのデータの転送(例えば、読み取り)をすることができる。行デコーダ512及び列デコーダ514は、アドレスライン516からアドレス信号(A0~AX)を受信及びデコードでき、どのメモリセル504にアクセスするかを決定でき、上述したように、アクセスライン506(例えば、複数のワードライン(WL0~WLm)の1つまたは複数)または第一データライン510(例えば、複数のビットライン(BL0~BLn)の1つまたは複数)の1つまたは複数に信号を提供できる。
メモリデバイス500は、第一データライン510を使用してメモリセル504上の(例えば、読み取る)データの値を決定するか、または書き込まれるデータの値を決定するように構成される、センスアンプ520などのセンス回路網を含むことができる。例えば、メモリセル504の選択されたストリングで、センスアンプ520の1つまたは複数は、メモリアレイ502内を選択されたストリングを通ってデータライン510に流れる読み取り電流に応答して、選択されたメモリセル504の論理レベルを読み取ることができる。
メモリデバイス500の外部の1つまたは複数のデバイスは、I/Oライン(DQ0~DQN)508、アドレスライン516(A0~AX)、または制御ライン532を使用してメモリデバイス500と通信できる。入力/出力(I/O)回路526は、例えば、制御ライン532及びアドレスライン516に従って、I/O線508を使用して、ページバッファ522またはメモリアレイ502の内外など、メモリデバイス500の内外にデータの値を転送することができる。ページバッファ522は、データがメモリアレイ502の関連部分にプログラムされる前に、メモリデバイス500の外部の1つもしくは複数のデバイスから受信したデータを格納できるか、または、データがメモリデバイス500の外部の1つもしくは複数のデバイスに送信される前に、メモリアレイ502から読み取られたデータを格納できる。
列デコーダ514は、アドレス信号(A0~AX)を受信して、1つまたは複数の列選択信号(CSEL1~CSELn)にデコードできる。セレクタ524(例えば、選択回路)は、列選択信号(CSEL1~CSELn)を受信し、メモリセル504から読み出されるべきか、またはメモリセル504にプログラムされるべきデータの値を表すページバッファ522内のデータを選択することができる。選択されたデータは、第二データライン518を使用して、ページバッファ522とI/O回路526との間で転送できる。
メモリ制御ユニット530は、外部ソースまたは電源(例えば、内部または外部バッテリ、AC-DCコンバータなど)から、電源電圧(Vcc)534及び負電源(Vss)536(例えば、接地電位)などの正及び負の電源信号を受信することができる。特定の実施例では、メモリ制御ユニット530は、正または負の電源信号を内部的に提供するためのレギュレータ528を含むことができる。
図6は、本明細書で論じられる技術(例えば、方法論)のうちの任意の1つ以上が遂行され得る例示的なマシン(例えば、ホストシステム)600のブロック図を示す。代替の実施形態では、マシン600は、スタンドアロンデバイスとして動作し得るか、または他のマシンに接続(例えば、ネットワーク化)され得る。ネットワーク化配備では、マシン600は、サーバクライアントネットワーク環境で、サーバマシン、クライアントマシン、またはその両方の能力で動作し得る。一実施例では、マシン600は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能し得る。マシン600は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによって取られるべきアクションを指定する命令(シーケンシャルまたはその他の方法)を実行することが可能な任意のマシンであり得る。さらに単一のマシンしか示していないが、用語「マシン」は、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成などの本明細書で説明される方法論のうちの任意の1つ以上の方法論を遂行するために命令のセット(または複数のセット)を個別にまたは共同で実行するマシンの任意の集合を含むと解釈されるものとする。
本明細書で説明される実施例は、論理、構成要素、デバイス、パッケージ、もしくは機構を含み得るか、またはそれらによって動作し得る。電気回路は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。回路網の構成部材は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。電気回路は、単独でまたは組み合わせて、動作時に特定のタスクを遂行し得る構成部材を含む。一実施例では、電気回路のハードウェアは、特定の動作(例えば、ハードワイヤード)を行うように不変に設計され得る。一実施例では、電気回路のハードウェアは、特定の動作の命令をエンコードするために、物理的に修正された(例えば、磁気的、電気的、不変質量粒子の可動配置など)コンピュータ可読媒体を含む、可変的に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路など)を含み得る。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。この命令により、関係するハードウェア(例えば、実行ユニットまたはロード機構)は、可変接続を介してハードウェア内に回路網の構成要素を作成して、動作中に特定のタスクの一部を実行できるようになる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他の構成要素に通信可能に結合される。一実施例では、物理的構成要素のいずれかが、複数の電気回路の複数の構成部材で使用され得る。例えば、動作中、実行ユニットは、ある時点で第一回路網の第一回路で使用され得、別の時点で第一回路網の第二回路によって再利用され得るか、または第二回路網の第三回路によって再利用され得る。
マシン(例えば、コンピュータシステム、ホストシステムなど)600は、処理デバイス602(例えば、ハードウェアプロセッサ、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組み合わせなど)、メインメモリ604(例えば、読み出し専用メモリ(ROM)、シンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ606(例えば、スタティックランダムアクセスメモリ(SRAM)など)、及びストレージシステム618を含み得、これらの一部または全ては、通信インタフェース(例えば、バス)630を介して互いに通信し得る。
処理デバイス602は、マイクロプロセッサ、中央処理ユニットなどのような1つ以上の汎用処理デバイスを表すことができる。より具体的には、処理デバイスは、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、もしくは他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサとすることができる。処理デバイス602はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどのような1つ以上の専用処理デバイスとすることができる。処理デバイス602は、本明細書で論じられる動作及びステップを遂行するための命令626を実行するように構成することができる。コンピュータシステム600は、ネットワーク620を介して通信するためのネットワークインタフェースデバイス608をさらに含むことができる。
ストレージシステム618は、本明細書で説明される方法論または機能のうちの任意の1つ以上を具体化する命令626またはソフトウェアの1つまたは複数のセットが記憶される機械可読記憶媒体(コンピュータ可読媒体としても知られる)を含むことができる。命令626はまた、メインメモリ604内または処理デバイス602内に、コンピュータシステム600による当該処理デバイスの実行中に完全にまたは少なくとも部分的に常駐することができ、メインメモリ604及び処理デバイス602はまた、機械可読記憶媒体を構成する。
用語「機械可読記憶媒体」は、1つ以上の命令セットを記憶する単一の媒体もしくは複数の媒体、または機械によって実行するための命令のセットを記憶もしくはエンコードすることができ、本開示の方法論のうちの任意の1つ以上を機械に遂行させる任意の媒体を含むと解釈されるべきである。したがって、用語「機械可読記憶媒体」は、限定されないが、ソリッドステートメモリ、光学媒体、及び磁気媒体を含むと解釈されるものとする。一実施例では、大容量の(massed)機械可読媒体は、不変(例えば、静止)質量を有する複数の粒子を有する機械可読媒体を含む。したがって、大容量の機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な実施例には、半導体メモリデバイス(例えば、電気的プログラマブル読み出し専用メモリ(EPROM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROM及びDVD-ROMディスクが含まれ得る。
マシン600は、ディスプレイユニット、英数字入力デバイス(例えば、キーボード)、及びユーザインタフェース(UI)ナビゲーションデバイス(例えば、マウス)をさらに含み得る。一実施例では、ディスプレイユニット、入力デバイス、またはUIナビゲーションデバイスのうちの1つ以上は、タッチスクリーンディスプレイであり得る。マシンは、信号生成デバイス(スピーカなど)、または全地球測位システム(GPS)センサ、コンパス、加速度計もしくは1つ以上の他のセンサなどの1つ以上のセンサであり得る。マシン600は、1つ以上の周辺デバイス(例えば、プリンタ、カードリーダなど)と通信するか、またはそれらを制御するためのシリアル(例えば、ユニバーサルシリアルバス(USB)、パラレル、または他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラを含み得る。
ストレージシステム618に記憶されている命令626(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、処理デバイス602による使用のためにメインメモリ604によってアクセスすることができる。メインメモリ604(例えば、DRAM)は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期ストレージに適しているストレージシステム618(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン600によって使用されている命令626またはデータは、典型的には、処理デバイス602による使用のためにメインメモリ604にロードされる。メインメモリ604が一杯になると、メインメモリ604を補うために、ストレージシステム618からの仮想空間を割り当てることができるが、ストレージシステム618は、典型的には、メインメモリ604よりも遅く、書き込み速度は、典型的には、読み取り速度の少なくとも2倍遅いので、仮想メモリの使用は、(メインメモリ604、例えば、DRAMとは対照的に)ストレージシステムの待ち時間に起因するユーザエクスペリエンスを大幅に低下させる可能性がある。さらに、仮想メモリのためのストレージシステム618の使用は、ストレージシステム618の使用可能な寿命を大幅に減少させる可能性がある。
命令624はさらに、複数の転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちの任意の1つを利用するネットワークインタフェースデバイス608を介して伝送媒体を使用してネットワーク620を経由して送信または受信され得る。通信ネットワークの実施例は、とりわけ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi-Fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11ファミリの規格、WiMax(登録商標)として知られるIEEE802.16ファミリの規格)、IEEE802.15.4ファミリの規格、ピアツーピア(P2P)ネットワークを含み得る。一例では、ネットワークインタフェースデバイス608は、ネットワーク620に接続するための1つ以上の物理的ジャック(例えば、イーサネット、同軸ジャックもしくは電話ジャック)または1つ以上のアンテナを含み得る。一例では、ネットワークインタフェースデバイス608は、シングル入力マルチ出力(SIMO)技術、マルチ入力マルチ出力(MIMO)技術またはマルチ入力シングル出力(MISO)技術のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。用語「伝送媒体」は、マシン600による実行のための命令を記憶、符号化または搬送することができる任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためにデジタル通信信号またはアナログ通信信号もしくは他の無形媒体を含むと解釈されるものとする。
上記の詳細な説明は、詳細な説明の一部を形成する添付図面に対する参照を含む。図面は、例示として、本発明を実施できる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも称される。こうした実施例は、図示または説明された要素に加えて要素を含み得る。しかしながら、本発明者は、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者は、本明細書に図示または説明された特定の実施例(もしくはその1つ以上の態様)に関して、または他の実施例(もしくはその1つ以上の態様)に関して、図示または説明されたそれらの要素(もしくはその1つ以上の態様)の任意の組み合わせまたは変形を使用する実施例も企図する。
本書中に参照される全ての出版物、特許、及び特許文書は、あたかも参照により個別に援用されているかのように、その全体が参照により本明細書に援用される。本書と参照により援用されるそれらの文書との間に一致しない用法がある場合、援用された参考文献(複数可)の用法は、本書の使用に対する補足と見なされるべきである。解決できない不一致の場合、本書における用法が支配する。
本書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の例または使用法とは関係なく、1つまたは複数を含むために使用される。本書では、用語「または(or)」は、非排他的を指す、つまり別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではなく(A but not B)」、「BであるがAではなく(B but not A)」、及び「A及びB(A and B)」を含むように使用される。添付の特許請求の範囲では、用語「含む(including)」及び「~において(in which)」は、それぞれの用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の均等物として使用される。また、以下の特許請求の範囲では、「含む(including)」及び「含む(comprising)」という用語はオープンエンド形式である。すなわち、請求項の中のそのような用語の後に示される要素に加えて要素を含むシステム、デバイス、物品、またはプロセスもその請求項の範囲に含まれると見なされる。さらに、以下の特許請求の範囲では、用語「第一」、「第二」、及び「第三」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
様々な実施例で、本明細書に記載の構成要素、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに格納された物理回路またはファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサまたは処理回路などの任意のタイプの計算回路を意味する。
本書で使用される用語「水平」は、任意の時点での基板の実際の向きに関係なく、ウェーハまたはダイの下にあるものなど、基板の従来の平面または表面に平行な平面として定義される。用語「垂直」は、上記で定義された水平に直角な方向を指す。「上に(on)」、「上方に(over)」、及び「下に(under)」などの前置詞は、基板の向きに関係なく、基板の上面または露出面にある従来の平面または表面に関して定義され、一方、(反対の明示的な指示がない場合)「上に(on)」は、「上(on)」にある別の構造に対するある構造の直接接触を示唆することを意図している。用語「上方に(over)」及び「下に(under)」は、構造(または層、特徴など)の相対的配置を識別することを明示的に意図しており、そのように具体的に識別されない限り、識別された構造間の直接接触を明示的に含むが、これらに限定されない。同様に、「上」及び「下」という用語は、水平方向に限定されない。なぜなら、構造体は、ある時点では、議論中の構造の最も外側の部分である場合、そのような構造体が参照された構造体に対して、水平方向ではなく、垂直方向に延在する場合でも、参照された構造体の「上」にある可能性があるためである。
「ウェーハ」及び「基板」という用語は、集積回路が形成される任意の構造、また、集積回路製造のさまざまな段階中のそれらのような構造を一般に指すために本明細書では使用される。したがって、以下の詳細な説明は、限定的な意味において解釈されず、様々な実施形態の範囲は、添付の特許請求の範囲だけによって、特許請求の範囲によって権利が与えられる均等物の全範囲と共に定義される。
本開示による及び本明細書に記載される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される、方向に関する形容詞は、メモリセルが形成される基板の表面に対するものとして解釈される(すなわち、垂直構造は基板表面から離れて延在すると解釈され、垂直構造の底端は基板表面に最も近い端と解釈され、垂直構造の上端は基板表面から最も遠い端と解釈される)。
本明細書で使用される、水平、垂直、垂線、平行、直角などの方向に関する形容詞は、相対配向を指し得、特に明記しない限り、特定の幾何学的特性への厳密な順守を要求することを意図しない。例えば、本明細書で使用される垂直構造は、基板の表面に厳密に垂直である必要はないが、代わりに、基板の表面に略垂直であり得、基板の表面に対して鋭角(例えば、60~120度など)を形成し得る。
本明細書で説明されるいくつかの実施形態では、異なるドーピング構成が、選択ゲートソース(SGS)、制御ゲート(CG)、及び選択ゲートドレイン(SGD)に適用され得、これらのそれぞれは、この実施例では、ポリシリコンで形成され得るか、または少なくともポリシリコンを含み得、その結果、これらの階層(例えば、ポリシリコンなど)は、エッチング液にさらされたときに異なるエッチング速度を有し得る。例えば、3D半導体デバイスでモノリシックピラーを形成するプロセスでは、SGS及びCGが凹部を形成し得る一方、SGDは凹部が少ないままであり得るか、または凹部が存在すらしないままであり得る。したがって、これらのドーピング構成は、エッチング液(例えば、水酸化テトラメチルアンモニウム(TMCH))を使用することによって、3D半導体デバイスの別個の階層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
本明細書で使用されるメモリセルの動作は、メモリセルからの読み出し、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図された状態にする動作は、本明細書では「プログラミング」と称し、メモリセルへの書き込みまたはメモリセルからの消去(すなわち、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
要素が別の要素の「上にある(on)」、別の要素に「接続されている(connected to)」、または別の要素と「結合されている(coupled with)」と称されるとき、その要素は、他の要素の上に直接あり得るか、直接接続され得るか、もしくは直接結合され得るか、または介在要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある(directly on)」、別の要素に「直接接続されている(directly connected to)」、または別の要素と「直接結合されている(directly coupled with)」と称されるとき、介在要素または層は存在しない。2つの要素がそれらを接続する線で図面に示されている場合、別段の指示がない限り、2つの要素は結合が可能であるか、または直接結合が可能であるかのいずれかである。
本明細書で説明される方法の実施例は、少なくとも部分的に、マシンまたはコンピュータに実装することができる。一部の例は、上記の例に説明したような方法を電子デバイスが実施するように構成するように動作可能な命令で符号化されたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのコードを含み得る。このようなコードは、様々な方法を遂行するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つ以上の揮発性または不揮発性の有形コンピュータ可読媒体に有形で記憶させることができる。これらの有形のコンピュータ可読媒体の実施例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)などを含むことができる。
実施例1は、ストレージシステムであり、このストレージシステムはメモリアレイと、1つ以上の論理対物理(L2P)マッピングテーブルの少なくとも一部分を格納するように設定されるランダムアクセスメモリと、メモリコントローラとを含み、メモリコントローラは、メモリアレイを第一部分及び第二部分にパーティション化することであって、第一部分及び第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、パーティション化することと、第一用途のために指定されるメモリアレイの第一部分に第一粒度の第一L2Pマッピングテーブルエントリを割り当てることと、第二用途のために指定されるメモリアレイの第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、第二粒度は第一粒度に等しくない、割り当てることと、第一粒度及び第二粒度をメモリアレイに格納することと、第一L2Pマッピングテーブルエントリ及び第二L2Pマッピングテーブルエントリの少なくとも一部分をランダムアクセスメモリに格納することとを含む操作を実行するようにプログラムされる。
実施例2では、実施例1の主題は、第一粒度及び第二粒度をコントローラ内の領域テーブルに格納するように任意選択で構成される。
実施例3では、実施例1の主題は、第一粒度が第二粒度よりも大きくなるように任意選択で構成される。
実施例4では、実施例1の主題は、第二粒度が第一粒度よりも大きくなるように任意選択で構成される。
実施例5では、実施例1~4のいずれかの主題は、第一部分及び第二部分が異なるメモリタイプであるように任意選択で構成される。
実施例6では、実施例1~5のいずれかの主題は、メモリアレイを第一部分及び第二部分にパーティション化することが起動時にメモリアレイをパーティション化することを含むように任意選択で構成される。
実施例7では、実施例1~5のいずれかの主題は、メモリアレイを第一部分及び第二部分にパーティション化することが実行時にメモリアレイをパーティション化することを含むように任意選択で構成される。
実施例8では、実施例1~5のいずれかの主題は、メモリアレイを第一部分及び第二部分にパーティション化することが起動時にメモリアレイをパーティション化することと、実行時にメモリアレイを再パーティション化することとを含むように任意選択で構成される。
実施例9は、メモリコントローラによって、メモリアレイを第一部分及び第二部分にパーティション化することであって、第一部分及び第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、パーティション化することと、メモリコントローラによって、第一用途のために指定されるメモリアレイの第一部分に第一粒度の第一論理対物理(L2P)マッピングテーブルエントリを割り当てることと、メモリコントローラによって、第二用途のために指定されるメモリアレイの第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、第二粒度は第一粒度に等しくない、割り当てることと、メモリコントローラによって、第一粒度及び第二粒度をメモリアレイに格納することと、メモリコントローラによって、第一L2Pマッピングテーブルエントリ及び第二L2Pマッピングテーブルエントリの少なくとも一部分をメモリコントローラのL2Pキャッシュに格納することとを含む方法である。
実施例10では、実施例9の主題は、メモリコントローラによって、第三部分を含むようにメモリアレイをパーティション化することであって、第一部分、第二部分及び第三部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を含む、パーティション化することと、メモリコントローラによって、第三用途のために指定されるメモリアレイの第三部分に第三粒度の第三L2Pマッピングテーブルエントリを割り当てることとを方法がさらに含むように任意選択で構成される。
実施例11では、実施例10の主題は、第三粒度が第一粒度及び第二粒度に等しくないように任意選択で構成される。
実施例12では、実施例10または11の主題は、メモリコントローラによって、第三粒度をメモリアレイに格納することと、メモリコントローラによって、第三L2Pマッピングテーブルエントリの少なくとも一部分をメモリコントローラのL2Pキャッシュに格納することとを方法がさらに含むように任意選択で構成される。
実施例13では、実施例10~12のいずれかの主題は、メモリコントローラによって、第四部分を含むようにメモリアレイをパーティション化することであって、第一部分、第二部分、第三部分及び第四部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を含む、パーティション化することと、メモリコントローラによって、第四用途のために指定されるメモリアレイの第四部分に第四粒度の第四L2Pマッピングテーブルエントリを割り当てることとを方法がさらに含むように任意選択で構成される。
実施例14では、実施例13の主題は、第四粒度が第一粒度、第二粒度及び第三粒度に等しくないように任意選択で構成される。
実施例15では、実施例13または14の主題は、メモリコントローラによって、第四粒度をメモリアレイに格納することと、メモリコントローラによって、第四L2Pマッピングテーブルエントリの少なくとも一部分をメモリコントローラのL2Pキャッシュに格納することとを方法がさらに含むように任意選択で構成される。
実施例16は、命令を提供するデバイス可読記憶媒体であり、これらの命令は、プロセッサによって実行されると、メモリアレイを第一部分及び第二部分にパーティション化することであって、第一部分及び第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、パーティション化することと、第一用途のために指定されるメモリアレイの第一部分に第一粒度の第一論理対物理(L2P)マッピングテーブルエントリを割り当てることと、第二用途のために指定されるメモリアレイの第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、第二粒度は第一粒度に等しくない、割り当てることと、第一粒度及び第二粒度をメモリアレイに格納することと、第一L2Pマッピングテーブルエントリ及び第二L2Pマッピングテーブルエントリの少なくとも一部分をL2Pキャッシュに格納することとを含む操作をプロセッサに実行させる。
実施例17では、実施例16の主題は、第一部分及び第二部分が異なるメモリタイプであるように任意選択で構成される。
実施例18では、実施例16または17の主題は、メモリアレイを第一部分及び第二部分にパーティション化することが起動時にメモリアレイをパーティション化することを含むように任意選択で構成される。
実施例19では、実施例16または17の主題は、メモリアレイを第一部分及び第二部分にパーティション化することが実行時にメモリアレイをパーティション化することを含むように任意選択で構成される。
実施例20では、実施例16または17の主題は、メモリアレイを第一部分及び第二部分にパーティション化することが起動時にメモリアレイをパーティション化することと、実行時にメモリアレイを再パーティション化することとを含むように任意選択で構成される。
実施例21は、命令を含む少なくとも1つの機械可読媒体であり、これらの命令は処理回路によって実行されると、実施例1~20のいずれかを実装する操作を処理回路に実行させる。
実施例22は、実施例1~20のいずれかを実装するための手段を含む装置である。
実施例23は、実施例1~20のいずれかを実装するシステムである。
実施例24は、実施例1~20のいずれかを実装する方法である。
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の実施例(またはその1つ以上の態様)は、相互に組み合わせて使用され得る。上記の説明を検討する際に当業者によってなど、他の実施形態を使用できる。要約は、読者が技術的開示の本質を迅速に把握することができるように、37CFR§1.72(b)に準拠するように提供される。これは、特許請求の範囲の範囲または意味を解釈するためにも限定するためにも使用されないとの理解の元に提示される。また、上記の発明を実施するための形態では、様々な特徴が本開示を効率化するために一緒にグループ化され得る。これは、請求されていない開示された特徴がいずれかの請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態の全ての特徴に満たないものに存在し得る。したがって、次の特許請求の範囲は発明を実施するための形態にここで組み込まれ、各請求項は別個の実施形態として自立しており、このような実施形態は、様々な組み合わせまたは変形で相互に組み合わせることができると想到される。本発明の範囲は、添付の特許請求の範囲に関して、こうした特許請求の範囲によって権利が与えられる均等物の全範囲と共に決定されるべきである。
Claims (20)
- メモリアレイと、
1つ以上の論理対物理(L2P)マッピングテーブルの少なくとも一部分を格納するように構成されるランダムアクセスメモリと、
メモリコントローラと、
を含む、ストレージシステムであって、
前記メモリコントローラは、
前記メモリアレイを第一部分及び第二部分にパーティション化することであって、前記第一部分及び前記第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、前記パーティション化することと、
第一用途のために指定される前記メモリアレイの前記第一部分に、第一粒度の第一L2Pマッピングテーブルエントリを割り当てることと、
第二用途のために指定される前記メモリアレイの前記第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、前記第二粒度は前記第一粒度に等しくない、前記割り当てることと、
前記第一粒度及び前記第二粒度を前記メモリアレイに格納することと、
前記第一L2Pマッピングテーブルエントリ及び前記第二L2Pマッピングテーブルエントリの少なくとも一部分を前記ランダムアクセスメモリに格納することと、
を含む操作を実行するようにプログラムされる、
前記ストレージシステム。 - 前記第一粒度及び前記第二粒度は、前記コントローラ内の領域テーブルに格納される、請求項1に記載のシステム。
- 前記第一粒度は前記第二粒度よりも大きい、請求項1に記載のシステム。
- 前記第二粒度は前記第一粒度よりも大きい、請求項1に記載のシステム。
- 前記第一部分及び前記第二部分は異なるメモリタイプである、請求項1に記載のシステム。
- 前記メモリアレイを第一部分及び第二部分にパーティション化することは、起動時に前記メモリアレイをパーティション化することを含む、請求項1に記載のシステム。
- 前記メモリアレイを第一部分及び第二部分にパーティション化することは、実行時に前記メモリアレイをパーティション化することを含む、請求項1に記載のシステム。
- 前記メモリアレイを第一部分及び第二部分にパーティション化することは、起動時に前記メモリアレイをパーティション化することと、実行時に前記メモリアレイを再パーティション化することとを含む、請求項1に記載のシステム。
- メモリコントローラによって、メモリアレイを第一部分及び第二部分にパーティション化することであって、前記第一部分及び前記第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、前記パーティション化することと、
前記メモリコントローラによって、第一用途のために指定される前記メモリアレイの前記第一部分に、第一粒度の第一論理対物理(L2P)マッピングテーブルエントリを割り当てることと、
前記メモリコントローラによって、第二用途のために指定される前記メモリアレイの前記第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、前記第二粒度は前記第一粒度に等しくない、前記割り当てることと、
前記メモリコントローラによって、前記第一粒度及び前記第二粒度を前記メモリアレイに格納することと、
前記メモリコントローラによって、前記第一L2Pマッピングテーブルエントリ及び前記第二L2Pマッピングテーブルエントリの少なくとも一部分を前記メモリコントローラのL2Pキャッシュに格納することと、
を含む、方法。 - 前記メモリコントローラによって、第三部分を含むように前記メモリアレイをパーティション化することであって、前記第一部分、前記第二部分及び前記第三部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、前記パーティション化することと、
前記メモリコントローラによって、第三用途のために指定される前記メモリアレイの前記第三部分に、第三粒度の第三L2Pマッピングテーブルエントリを割り当てることと、
をさらに含む、請求項9に記載の方法。 - 前記第三粒度は前記第一粒度及び前記第二粒度に等しくない、請求項10に記載の方法。
- 前記メモリコントローラによって、前記第三粒度を前記メモリアレイに格納することと、
前記メモリコントローラによって、前記第三L2Pマッピングテーブルエントリの少なくとも一部分を前記メモリコントローラの前記L2Pキャッシュに格納することと、
をさらに含む、請求項10に記載の方法。 - 前記メモリコントローラによって、第四部分を含むように前記メモリアレイをパーティション化することであって、前記第一部分、前記第二部分、前記第三部分及び前記第四部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、前記パーティション化することと、
前記メモリコントローラによって、第四用途のために指定される前記メモリアレイの前記第四部分に、第四粒度の第四L2Pマッピングテーブルエントリを割り当てることと、
をさらに含む、請求項10に記載の方法。 - 前記第四粒度は前記第一粒度、前記第二粒度及び前記第三粒度に等しくない、請求項13に記載の方法。
- 前記メモリコントローラによって、前記第四粒度を前記メモリアレイに格納することと、
前記メモリコントローラによって、前記第四L2Pマッピングテーブルエントリの少なくとも一部分を前記メモリコントローラの前記L2Pキャッシュに格納することと、
をさらに含む、請求項13に記載の方法。 - 非一時的なコンピュータ可読媒体であって、その上に命令を含み、前記命令はプロセッサによって実行されると、
メモリアレイを第一部分及び第二部分にパーティション化することであって、前記第一部分及び前記第二部分はオーバーラップしていない論理ブロックアドレス(LBA)範囲を有する、前記パーティション化することと、
第一用途のために指定される前記メモリアレイの前記第一部分に、第一粒度の第一論理対物理(L2P)マッピングテーブルエントリを割り当てることと、
第二用途のために指定される前記メモリアレイの前記第二部分に第二粒度の第二L2Pマッピングテーブルエントリを割り当てることであって、前記第二粒度は前記第一粒度に等しくない、前記割り当てることと、
前記第一粒度及び前記第二粒度を前記メモリアレイに格納することと、
前記第一L2Pマッピングテーブルエントリ及び前記第二L2Pマッピングテーブルエントリの少なくとも一部分をL2Pキャッシュに格納することと、
を含む操作を、前記プロセッサに実行させる、
前記非一時的なコンピュータ可読媒体。 - 前記第一部分及び前記第二部分は異なるメモリタイプである、請求項16に記載のコンピュータ可読媒体。
- 前記メモリアレイを第一部分及び第二部分にパーティション化することは、起動時に前記メモリアレイをパーティション化することを含む、請求項16に記載のコンピュータ可読媒体。
- 前記メモリアレイを第一部分及び第二部分にパーティション化することは、実行時に前記メモリアレイをパーティション化することを含む、請求項16に記載のコンピュータ可読媒体。
- 前記メモリアレイを第一部分及び第二部分にパーティション化することは、起動時に前記メモリアレイをパーティション化することと、実行時に前記メモリアレイを再パーティション化することとを含む、請求項16に記載のコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/237,134 US10871907B2 (en) | 2018-12-31 | 2018-12-31 | Sequential data optimized sub-regions in storage devices |
US16/237,134 | 2018-12-31 | ||
PCT/US2019/059837 WO2020142137A1 (en) | 2018-12-31 | 2019-11-05 | Sequential data optimized sub-regions in storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022515541A true JP2022515541A (ja) | 2022-02-18 |
Family
ID=71121754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021538202A Pending JP2022515541A (ja) | 2018-12-31 | 2019-11-05 | ストレージデバイスにおけるシーケンシャルデータ最適化サブリージョン |
Country Status (7)
Country | Link |
---|---|
US (4) | US10871907B2 (ja) |
EP (1) | EP3906466A4 (ja) |
JP (1) | JP2022515541A (ja) |
KR (1) | KR20210099184A (ja) |
CN (1) | CN113396383A (ja) |
TW (1) | TWI741425B (ja) |
WO (1) | WO2020142137A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10871907B2 (en) | 2018-12-31 | 2020-12-22 | Micron Technology, Inc. | Sequential data optimized sub-regions in storage devices |
CN112286838A (zh) * | 2019-07-25 | 2021-01-29 | 戴尔产品有限公司 | 存储设备可配置的映射粒度系统 |
KR20210037367A (ko) | 2019-09-27 | 2021-04-06 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
US11501847B2 (en) | 2019-09-27 | 2022-11-15 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with address re-mapping |
KR20210106757A (ko) * | 2020-02-21 | 2021-08-31 | 에스케이하이닉스 주식회사 | 호스트, 저장 장치 및 이들을 포함하는 컴퓨팅 시스템 |
US11714547B2 (en) * | 2020-06-05 | 2023-08-01 | Micron Technology, Inc. | Trims for memory performance targets of applications |
US20200363998A1 (en) * | 2020-08-07 | 2020-11-19 | Intel Corporation | Controller and persistent memory shared between multiple storage devices |
US20230297517A1 (en) * | 2022-03-21 | 2023-09-21 | Samsung Electronics Co., Ltd. | Systems and methods for sending a command to a storage device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020881A (ja) * | 2007-07-12 | 2009-01-29 | Qnx Software Systems Gmbh & Co Kg | 可変のページサイズのメモリ編成を実装する処理システム |
JP2010198407A (ja) * | 2009-02-26 | 2010-09-09 | Sony Corp | 情報処理装置、およびデータ記録制御方法、並びにプログラム |
JP2012523624A (ja) * | 2009-04-08 | 2012-10-04 | グーグル インコーポレイテッド | フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置 |
JP2015056171A (ja) * | 2013-09-13 | 2015-03-23 | 株式会社東芝 | メモリシステムおよび情報処理装置 |
JP2017068804A (ja) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、アクセスコントローラ、および情報処理方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020059481A1 (en) * | 1998-12-30 | 2002-05-16 | Patrick O. Nunally | Method and apparatus for a multimedia application specific processor |
US8010740B2 (en) * | 2006-06-08 | 2011-08-30 | Bitmicro Networks, Inc. | Optimizing memory operations in an electronic storage device |
WO2009096180A1 (ja) * | 2008-01-30 | 2009-08-06 | Panasonic Corporation | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム |
JP5074457B2 (ja) * | 2009-06-04 | 2012-11-14 | 株式会社日立製作所 | 計算機システム、スイッチ切り替え方法及びpciスイッチ |
US9323667B2 (en) * | 2012-04-12 | 2016-04-26 | Violin Memory Inc. | System and method for managing trim operations in a flash memory system using mapping tables and block status tables |
WO2014101117A1 (zh) * | 2012-12-28 | 2014-07-03 | 华为技术有限公司 | 数据存储方法和存储设备 |
US9454474B2 (en) * | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
US20150095555A1 (en) * | 2013-09-27 | 2015-04-02 | Avalanche Technology, Inc. | Method of thin provisioning in a solid state disk array |
US9543988B2 (en) * | 2014-05-29 | 2017-01-10 | Netapp, Inc. | Adaptively strengthening ECC for solid state cache |
US9916265B2 (en) * | 2014-12-15 | 2018-03-13 | Advanced Micro Device, Inc. | Traffic rate control for inter-class data migration in a multiclass memory system |
US9875189B2 (en) * | 2015-06-12 | 2018-01-23 | Intel Corporation | Supporting secure memory intent |
US20170177497A1 (en) * | 2015-12-21 | 2017-06-22 | Qualcomm Incorporated | Compressed caching of a logical-to-physical address table for nand-type flash memory |
US10459635B2 (en) * | 2016-02-11 | 2019-10-29 | SK Hynix Inc. | Window based mapping |
CN105808378B (zh) * | 2016-02-26 | 2018-10-30 | 华为技术有限公司 | 元数据修复方法及装置 |
CN106547703B (zh) * | 2016-10-08 | 2019-05-14 | 华中科技大学 | 一种基于块组结构的ftl优化方法 |
JP2018160059A (ja) * | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリコントローラ |
US10565123B2 (en) | 2017-04-10 | 2020-02-18 | Western Digital Technologies, Inc. | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module |
CN109086222B (zh) * | 2018-07-24 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据恢复方法以及固态硬盘 |
US10871907B2 (en) | 2018-12-31 | 2020-12-22 | Micron Technology, Inc. | Sequential data optimized sub-regions in storage devices |
-
2018
- 2018-12-31 US US16/237,134 patent/US10871907B2/en active Active
-
2019
- 2019-11-05 CN CN201980090715.1A patent/CN113396383A/zh active Pending
- 2019-11-05 EP EP19907025.1A patent/EP3906466A4/en not_active Withdrawn
- 2019-11-05 WO PCT/US2019/059837 patent/WO2020142137A1/en unknown
- 2019-11-05 KR KR1020217024358A patent/KR20210099184A/ko not_active Application Discontinuation
- 2019-11-05 JP JP2021538202A patent/JP2022515541A/ja active Pending
- 2019-12-02 TW TW108143862A patent/TWI741425B/zh active
-
2020
- 2020-12-21 US US17/129,087 patent/US11294585B2/en active Active
-
2022
- 2022-03-23 US US17/702,217 patent/US11755214B2/en active Active
-
2023
- 2023-09-11 US US18/464,630 patent/US20240020033A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020881A (ja) * | 2007-07-12 | 2009-01-29 | Qnx Software Systems Gmbh & Co Kg | 可変のページサイズのメモリ編成を実装する処理システム |
JP2010198407A (ja) * | 2009-02-26 | 2010-09-09 | Sony Corp | 情報処理装置、およびデータ記録制御方法、並びにプログラム |
JP2012523624A (ja) * | 2009-04-08 | 2012-10-04 | グーグル インコーポレイテッド | フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置 |
JP2015056171A (ja) * | 2013-09-13 | 2015-03-23 | 株式会社東芝 | メモリシステムおよび情報処理装置 |
JP2017068804A (ja) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、アクセスコントローラ、および情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US11755214B2 (en) | 2023-09-12 |
US11294585B2 (en) | 2022-04-05 |
TW202040566A (zh) | 2020-11-01 |
US20200210080A1 (en) | 2020-07-02 |
US20240020033A1 (en) | 2024-01-18 |
KR20210099184A (ko) | 2021-08-11 |
US20210109666A1 (en) | 2021-04-15 |
CN113396383A (zh) | 2021-09-14 |
US10871907B2 (en) | 2020-12-22 |
TWI741425B (zh) | 2021-10-01 |
EP3906466A4 (en) | 2022-10-26 |
EP3906466A1 (en) | 2021-11-10 |
WO2020142137A1 (en) | 2020-07-09 |
US20220214821A1 (en) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237953B2 (en) | Host device physical address encoding | |
US11720489B2 (en) | Scheme to improve efficiency of device garbage collection in memory devices | |
US11755214B2 (en) | Sequential data optimized sub-regions in storage devices | |
US11726919B2 (en) | Dynamic L2P cache | |
JP2021522579A (ja) | ホストの論理対物理情報の更新 | |
KR20150129941A (ko) | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 | |
US11163692B2 (en) | Memory constrained translation table management | |
US11922060B2 (en) | Internal communication interface management | |
US11972294B2 (en) | Allocation schema for a scalable memory area | |
US20190129641A1 (en) | Common pool management | |
JP2022172270A (ja) | ファームウェアの状態に基づく自動パワーダウン | |
WO2021035551A1 (en) | Write buffer control in managed memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210827 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220906 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230404 |