JP2022111152A - 可変幅スーパーブロックのアドレス指定のための装置及びシステム - Google Patents

可変幅スーパーブロックのアドレス指定のための装置及びシステム Download PDF

Info

Publication number
JP2022111152A
JP2022111152A JP2022085158A JP2022085158A JP2022111152A JP 2022111152 A JP2022111152 A JP 2022111152A JP 2022085158 A JP2022085158 A JP 2022085158A JP 2022085158 A JP2022085158 A JP 2022085158A JP 2022111152 A JP2022111152 A JP 2022111152A
Authority
JP
Japan
Prior art keywords
superblock
memory
request
nand
die
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
JP2022085158A
Other languages
English (en)
Inventor
エリック クウォック ファン ユエン
Eric Kwok Hwang Yuan
グアン ゾン ワン
Guanzhong Wang
シンホイ ズアン
Xinghui Duan
フーチェン リー
Hu-Cheng Lee
チョウ カイ
Zhao Cui
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Priority to JP2022085158A priority Critical patent/JP2022111152A/ja
Publication of JP2022111152A publication Critical patent/JP2022111152A/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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 (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】効率的なFTLを可能にしながら、従来の集約ブロック単位の問題に対処できるようにする。【解決手段】NANDアレイへのインタフェースと、処理回路とを備えた装置であって、処理回路は、データ構造内にスーパーブロックエントリを作成することにより、NANDダイプレーン内に規定されたスーパーブロック幅に基づくスーパーブロックを作成し(前記スーパーブロックエントリは、スーパーブロック内にあるNANDアレイからブロックのセットを共に定義する、スーパーブロック幅及びブロックインデックスを含む)、要求エンティティから要求を受信し、スーパーブロックのブロックの前記セットを取得するために、スーパーブロックエントリを用いてスーパーブロック上で前記要求を実行して結果を生成し(前記要求は、前記インタフェースを介しNANDアレイの複数のダイへの単一の命令によって実行される)、要求エンティティに前記結果を通知する。【選択図】図5

Description

本発明は、可変幅スーパーブロックのアドレス指定のための装置及びシステムに関する。
メモリデバイスは通常、コンピュータまたは他の電子デバイスの内部の半導体、集積回路として設けられる。揮発性および不揮発性メモリを含む多くの異なる種類のメモリがある。
揮発性メモリは、そのデータを維持するために電力を必要とし、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、または、同期ダイナミックランダムアクセスメモリ(SDRAM)等を含む。
不揮発性メモリは、電力供給されていないときに記憶されたデータを保持することができ、フラッシュメモリ、リードオンリメモリ(ROM)、電気的消去可能プログラム可能ROM(EEPROM)、スタティックRAM(SRAM)、消去可能プログラム可能ROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM)、磁気抵抗性ランダムアクセスメモリ(MRAM)、もしくは、3D XPoint(登録商標)メモリ等の抵抗可変メモリ等を含む。
フラッシュメモリは、広範囲な電子的応用のために不揮発性メモリとして利用される。フラッシュメモリデバイスは通常、高メモリ密度、高信頼性および低電力消費を可能にする、1トランジスタ、フローティングゲートまたは電荷トラップメモリセルの1つまたは複数のグループを含む。
一般的な種類の2つのフラッシュメモリアレイアーキテクチャは、それぞれの基本的なメモリセル構成が配置されている論理形式にちなんで名付けられた、NANDアーキテクチャとNORアーキテクチャである。メモリアレイのメモリセルは通常、マトリクス状に配置される。一例では、アレイの行の各フローティングゲートメモリセルのゲートは、アクセスライン(例えば、ワードライン)に結合される。NORアーキテクチャでは、アレイの列の各メモリセルのドレインは、データライン(例えば、ビットライン)に結合される。NANDアーキテクチャでは、アレイのストリングの各メモリセルのドレインは、ソースラインとビットラインの間で、ソースからドレインに、直列に一緒に結合される。
NORアーキテクチャとNANDアーキテクチャの両方の半導体メモリアレイは、ゲートに結合されたワード線を選択することによって特定のメモリセルをアクティブにするデコーダを介してアクセスされる。NORアーキテクチャの半導体メモリアレイでは、選択されたメモリセルがアクティブになると、データ値がビットラインに配置され、特定のセルがプログラムされている状態に応じて、異なる電流が流れる。NANDアーキテクチャの半導体メモリアレイでは、ドレイン側の選択ゲート(SGD)ラインに高バイアス電圧が印加される。各グループの非選択メモリセルのゲートに結合されたワード線は、指定されたパス電圧(例えば、Vpass)で駆動されて、各グループの非選択メモリセルをパストランジスタとして動作させる(例えば、メモリセルに記憶されたデータ値によって制限されないように電流を通す)。次に、電流は、各グループの選択されたメモリセルによってのみ制限されて、各直列に結合されたグループを通ってソースラインからビットラインに流れ、選択されたメモリセルの電流で符号化されたデータ値をビットラインに配置する。
NORまたはNANDアーキテクチャの半導体メモリアレイの各フラッシュメモリセルは、個別にまたはまとめて1つまたは複数のプログラムされた状態にプログラムできる。例えば、シングルレベルセル(SLC)は、1ビットのデータを表す2つのプログラムされた状態(例えば、1または0)の1つを表すことができる。
ただし、フラッシュメモリセルは、3つ以上のプログラムされた状態の1つを表すこともでき、各セルは複数の2進数(例えば、2ビット以上)を表すことができるため、メモリセルの数を増やすことなく、より高密度のメモリの製造を可能にする。このようなセルは、マルチステートメモリセル、マルチディジットセルまたはマルチレベルセル(MLC)と呼ばれる。特定の例では、MLCはセル毎に2ビットのデータ(例えば、4つのプログラムされた状態の1つ)を記憶できるメモリセルを指すことができ、トリプルレベルセル(TLC)はセル毎に3ビットのデータ(例えば、8つのプログラムされた状態の1つ)を記憶できるメモリセルを指すことができ、クワッドレベルセル(QLC)は、セル毎に4ビットのデータを記憶できる。MLCは、本明細書ではより広い文脈で使用されて、セル毎に2ビット以上のデータを記憶できる(すなわち、3つ以上のプログラムされた状態を表すことができる)任意のメモリセルを指す。
従来のメモリアレイは、半導体基板の表面に配置された二次元(2D)構造である。所与の領域のメモリ容量を増やし、コストを削減するために、個々のメモリセルのサイズは小さくなっている。しかしながら、個々のメモリセルのサイズの縮小、そして、2Dメモリアレイのメモリ密度には技術的な限界がある。これに対応して、3D NANDアーキテクチャの半導体メモリデバイス等の三次元(3D)メモリ構造が、メモリ密度をさらに高め、メモリコストを下げるために開発されている。
このような3D NANDデバイスは、ソースに近い1つまたは複数のソース側選択ゲート(SGS)とビットラインに近い1つまたは複数のドレイン側選択ゲート(SGD)との間に直列に(例えば、ドレインからソースへ)結合された記憶セルのストリングを含むことが多い。一例では、SGSまたはSGDは、1つまたは複数の電界効果トランジスタ(FET)または金属酸化膜半導体(MOS)構造デバイス等を含み得る。ある例では、ストリングは、それぞれワード線を含む複数の垂直方向に間隔を置いた層を通して垂直に延びる。半導体構造(例えば、ポリシリコン構造)は、記憶セルのストリングに隣接して延びて、ストリングの記憶セルのためのチャネルを形成することができ、垂直ストリングの例では、ポリシリコン構造は、垂直に延びるピラーの形であってよく、ある例では、ストリングを「折り畳んで」、U字型のピラーに配置できる。他の例では、複数の垂直構造を互いに積み重ねて、記憶セルストリングを積み重ねたアレイを形成することができる。
メモリアレイまたはデバイスを組み合わせて、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS(登録商標))デバイス、マルチメディアカード(MMC)ソリッドステートストレージデバイス、組み込みMMCデバイス(eMMC(登録商標))等のメモリシステムの記憶ボリュームを形成できる。SSDは、特に、コンピュータのメインストレージデバイスとして使用でき、例えば、性能、サイズ、重量、耐久性、動作温度範囲および消費電力などの点で、可動部品を備えた従来のハードドライブよりも優れている。例えば、SSDでは、シーク時間、待ち時間、または、磁気ディスクドライブ(電気機械等)に関連するその他の遅延を削減できる。SSDは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部のバッテリ供給要件を不要にし、ドライブをより多用途でコンパクトにすることができる。
SSDは、幾つかのダイまたは論理ユニット(例えば、論理ユニット番号またはLUN)を含む幾つかのメモリデバイスを含んでよく、メモリデバイスの動作または外部システムとのインタフェースのために必要とされる論理関数を行う1つまたは複数のプロセッサまたは他のコントローラを含み得る。このようなSSDは、幾つかのメモリアレイおよびその上の周辺回路を含む、1つまたは複数のフラッシュメモリダイを含み得る。フラッシュメモリアレイは、幾つかの物理ページに編成されたメモリセルの幾つかのブロックを含むことができる。多くの例では、SSDは、DRAMまたはSRAM(または他の形式のメモリダイまたは他のメモリ構造)も含む。SSDは、メモリデバイスとホスト間でデータ(例えば、ユーザデータ、および、エラーデータ、アドレスデータ等の関連する整合性データ)を転送する読み出しもしくは書き込み動作、または、メモリデバイスからデータを消去する消去動作等、メモリ動作に関連して、ホストからコマンドを受信することができる。
本発明の装置は、NANDアレイへのインタフェースと、処理回路とを備え、前記処理回路は、データ構造内にスーパーブロックエントリを作成することにより、NANDダイプレーン内に規定されたスーパーブロック幅に基づくスーパーブロックを作成することであって、前記スーパーブロックエントリは前記スーパーブロック幅及びブロックインデックスを含み、前記スーパーブロック幅及び前記ブロックインデックスは、共に、前記スーパーブロック内にある、前記NANDアレイからのブロックのセットを定義する、ことと、要求エンティティから要求を受信することと、前記スーパーブロックのブロックの前記セットを取得するように前記スーパーブロックエントリを用いて、前記スーパーブロック上で前記要求を実行して結果を生成することであって、前記要求は、前記NANDアレイへの前記インタフェースを介し前記NANDアレイの複数のダイへの単一の命令によって実行される、ことと、前記要求エンティティに前記結果を通知することと、を行うように構成される。本発明のシステムは、前記NANDアレイ及び前記装置を備える。
図面は、必ずしも縮尺どおりではなく、異なる図面を通して、類似の数字は類似のコンポーネントを示し得る。異なる接尾辞を持つ類似の数字は、類似のコンポーネントの異なる例を表し得る。図面は一般に、限定ではなく例として、本明細書で論じられる様々な実施形態を示す。
メモリデバイスを含む環境の例を示す。 スーパーブロックの例を示す。 可変幅スーパーブロックの例を示す。 可変幅スーパーブロックに対する書き込みの例を示す。 可変幅スーパーブロックのアドレス指定の方法のフローチャートを示す。 1つまたは複数の実施形態を実施できるマシンの例を示すブロック図である。
NANDデバイスは、ページレベルでの書き込みおよび読み出しアドレス指定と、ブロックレベルでの消去アドレス指定とを可能にするが、そのような細かい解決法には幾つかの実際的な問題がある。これらの問題は、フラッシュ変換レイヤ(FTL)テーブルのメンテナンスなど、さまざまなタスクや動作のオーバーヘッドへの対処を含み得る。これらの問題に対処するために、ブロックはデータが書き込まれる単一の論理エンティティに集約された。従来、集約されたブロックは、NANDアレイのあらゆるダイのあらゆるプレーンからのブロックを含んでいた。この配置には、ダイ全体にわたる書き込みコマンドの並列実行など、幾つかの利点がある。
集約ブロックの概念により、追跡するストレージユニットが少なくなり、FTLテーブルと管理への負担が軽減される。これは、使用可能なワーキングメモリ(例えば、システム状態を保持するランダムアクセスメモリ(RAM))が制限されている、マネージドNAND等のリソースが限られたデバイスでは重要な場合がある。ただし、ダイカウントとプレーンカウントが増加すると、集約されたブロック単位ストレージが大きくなる。次のテーブルは、プレーンとダイのカウントが増えるにつれて、集約されたブロック単位のサイズがどのように増加するかを示す。
Figure 2022111152000002
集約されたブロック単位のサイズが大きくなると、幾つかの問題が発生する。例えば、集約されたブロックをリフレッシュする時間が長くなる。また、読み出し障害処理、データ保持処理、または、非同期電力損失処理では、ある集約ブロック単位から別のブロック単位へのデータの移動時間が長くなる。これらのメンテナンス動作は、これらのブロックに対するNANDの他の動作に影響を与え、デバイスの待ち時間増加につながる場合がある(例えば、デバイスがホストの読み出しまたは書き込みコマンドに応答するのにかかる時間が長くなる)。
NANDデバイスでメンテナンスを行う時間の増加に加えて、ブロックの大きな集合体は、マネージドNANDデバイスで最小の有効なアドレス指定可能なエンティティとして集約ブロック単位が使用される場合、ストレージの無駄につながる場合もある。例えば、デバイスは、ユーザデータまたはメタデータとは別に、データコピー中に使用する一時スペースとしてリフレッシュストレージを確保する等、使用するためにスペースを確保する場合がある。例えば、リフレッシュの場合、データはソースストレージからリフレッシュストレージにコピーされ、ソースストレージが消去され、データがリフレッシュストレージからソースストレージにコピーされる。別の例は、プログラムエラーがある場合に発生する。ここで、デバイスは、確保済みストレージセクションを使用して不良セクションを置き換えることによって、不良ストレージセクション(例えば、集約ブロック単位)を正常なものに置き換える。不良ブロックの交換用に予約された大きな集約ブロック単位は、NANDデバイスの有効なオーバープロビジョニング(OP)を削減する(例えば、使用できる確保済みストレージが少なくても、デバイスのストレージ使用目標を満たしてしまう)。従って、プレーンにブロックが約200しかない場合(例えば、テーブル1のB2X)、1つのブロックの予約は0.5%のOP損失を意味する。OPが少ないと、システムの性能と耐久性に影響する。
可変幅スーパーブロックは、マネージドNANDデバイスで効率的なFTLを可能にしながら、上記の集約ブロック単位の問題に対処できる。上記の集約ブロック単位は、NANDアレイの全てのダイの全てのプレーンに及ぶ。この集約ブロック単位は、時折スーパーブロックと呼ばれてきた。しかしながら、これは、本明細書で使用されるスーパーブロックという語と区別される。本明細書で使用される場合、スーパーブロックは、少なくとも2つのダイに及ぶブロックの組み合わせを指す。これらのダイにわたるブロックは、ダイ内で同じアドレスを有する。このようにして、ダイZのブロックAは、ダイYのブロックAと組み合わされて、スーパーブロックを形成する。この定義により、ある実施形態は、「スーパーブロック」の従来の使用と比較した場合、「サブスーパーブロック」とみなされてよい。従って、集約ブロック単位とは異なり、スーパーブロックはダイ上の一部のプレーンからブロックを除外できる。例えば、それぞれが4つのプレーンを持つ2つのダイを有するNANDアレイでは、集約ブロック単位は、各ダイ(全部で2つ)の各プレーン(全部で4つ)からのブロックを含むが、スーパーブロックは各ダイ(全部で2つ)の全てのプレーンより少ないプレーン(例えば、2つのプレーン)からのブロックを含んでよい。スーパーブロックで使用されるプレーン数が、その幅である。任意の数のプレーンを使用してスーパーブロックを構築してよいが、集約ブロック単位の一部をスーパーブロック幅に選択すると有利な場合がある。例えば、単一ビットを使用して、集約ブロック単位に関して上位スーパーブロックまたは下位スーパーブロックをシグナリングして、集約ブロック単位の半分の幅であるスーパーブロックを規定してよい。この例では、下位スーパーブロックはプレーンインデックスで測定されたプレーンの前半分であってよく、上位スーパーブロックは残りのプレーンである。
NANDデバイスの基本動作ユニットとしてスーパーブロックを使用すると、より効率的なメンテナンス動作(例えば、待ち時間と動作を実行する時間の削減)と効果的なデバイスOPを可能にしながら、集約されたブロック単位に関して上記で説明した効率的なリソース管理が提供される。
スーパーブロックは、可変幅を可能にすることにより、幾つかの最適化の機会を提供する。大きなスーパーブロックは、より高い帯域幅を提供し、その結果、シーケンシャルな読み出しおよび書き込み性能が向上する。ただし、一部のシナリオでは、シリアルアドバンストテクノロジーアタッチメント(SATA:Serial Advanced Technology Attachment)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe:Peripheral Component Interconnect Express)、不揮発性メモリエクスプレス(NVMe)ホストインタフェース等で、NANDアレイの帯域幅ではなくホストインタフェースによって性能が妨げられる。これらのシナリオでは、ホストからのデバイスのスループットに影響を与えることなく、スーパーブロックの幅が縮小されて、メンテナンス動作時間の短縮、Op損失の削減などが行われる。
これらの性能のトレードオフにより、スーパーブロックの幅は、記憶されるデータの種類に合わせて調整することができる。例えば、FTLテーブルやその他のシステム情報データ等のメタデータは、ユーザデータよりも帯域幅の問題の影響を受けにくいことが多い。従って、より狭い幅のスーパーブロックを使用してメタデータを記憶することができ、全幅(例えば、集約されたブロック単位サイズの)スーパーブロックがユーザデータを記憶する。追加の詳細と実施例を以下に記載する。
図1は、通信インタフェースを介して通信するように構成されたホストデバイス105およびメモリデバイス110を含む環境100の例を示す。ホストデバイス105またはメモリデバイス110は、モノのインターネット(IoT)デバイス(例えば、冷蔵庫もしくは他の電化製品、センサ、モータもしくはアクチュエータ、モバイル通信デバイス、自動車、ドローン等)などの様々な製品150に含まれて、製品150の処理、通信または制御をサポートすることができる。
メモリデバイス110は、メモリコントローラ115と、例えば、幾つかの個々のメモリダイ(例えば、3次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャの半導体メモリ技術では、垂直構造が積み重ねられ、層の数、物理ページ、従って、メモリデバイス(例えば、ストレージデバイス)の密度が増加する。一例では、メモリデバイス110は、ホストデバイス105の離散メモリまたはストレージデバイスコンポーネントであってよい。他の例では、メモリデバイス110は、集積回路(例えば、システムオンチップ(SOC)等)の一部であってよく、ホストデバイス105の1つまたは複数の他のコンポーネントと積み重ねられてよく、または、他の方法で含まれてよい。
シリアルアドバンストテクノロジーアタッチメント(SATA)インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、ユニバーサルフラッシュストレージ(UFS)インタフェース、eMMC(登録商標)インタフェース、または、1つまたは複数の他のコネクタもしくはインタフェース等、1つまたは複数の通信インタフェースを使用して、メモリデバイス110と、ホストデバイス105の1つまたは複数の他のコンポーネントとの間でデータを転送することができる。ホストデバイス105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダ、または、メモリデバイス110の外部の1つまたは複数の他の電子デバイスを含み得る。ある例では、ホスト105は、図6のマシン600を参照して記載するコンポーネントの一部または全てを有するマシンであってよい。
メモリコントローラ115は、ホスト105から命令を受信することができ、メモリアレイ120と通信して、例えば、メモリアレイ120のメモリセル、プレーン、サブブロック、ブロック、または、ページのうちの1つまたは複数にデータを転送する(例えば、書き込む、または、消去する)またはそこからデータを転送する(例えば、読み取る)ことができる。メモリコントローラ115は、とりわけ、1つまたは複数のコンポーネントまたは集積回路を含む回路またはファームウェアを含み得る。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホスト105とメモリデバイス110との間に変換レイヤを提供するように構成された1つまたは複数のメモリ制御ユニット、回路、またはコンポーネントを含み得る。
メモリコントローラ115は、スーパーブロックを使用してフラッシュ変換レイヤ(FTL)を実装してよい。メモリコントローラ115は、スーパーブロック幅を取得するように構成される。メモリコントローラ115は、(例えば、ホスト105から、ブートプロセスから等)幅を受信してよく、または(例えば、アレイ120から、外部記憶装置、リードオンリメモリ等から)幅を読み出してよい。幅は、ダイプレーンの数を指定する。従って、1の幅は1つのダイプレーン、2の幅は2つのダイプレーン等である。
一例では、プレーン数は、パーセンテージとして指定される。ここで、パーセンテージは、ダイのプレーンの総数に対するものである。従って、ダイに4つのプレーンがある場合、25%の幅はプレーン1つである。一例では、パーセンテージは50パーセントである。一例では、プレーン数は、メモリデバイス110のダイ(例えば、アレイ120内)のプレーンよりも少ない。これは、ダイの全てのプレーンに一意のインデックスのブロックを含み、メモリデバイス110の全てのダイに及ぶ完全なスーパーブロックとは対照的である。完全なスーパーブロックは、集約ブロック単位のように動作するが、メモリコントローラ115によって取得された既定の幅に基づいているので、異なる。一例では、ユーザデータは完全なスーパーブロックに記憶され、NANDデバイスのメタデータはスーパーブロックに記憶される。このスーパーブロック幅の混合使用により、予想される、または動的に(例えば、デバイスの動作中に)測定される使用量に応じて、デバイスの帯域幅の柔軟な管理と、待ち時間またはOPの削減とを可能にする。
一例では、スーパーブロックは、スーパーブロックのセットのうちの1つである。ここで、スーパーブロックのセットは、メモリデバイス110の全てのダイにわたるダイのあらゆるプレーンに対して一意のインデックスのブロックを含む。従って、4つのプレーンが与えられると、4つのスーパーブロックがある。第1のスーパーブロックは、各ダイのプレーン1にブロックがあり、第2のスーパーブロックは、各ダイのプレーン2にブロックがあり、第3のスーパーブロックは、各ダイのプレーン3にブロックがあり、第4のスーパーブロックは、各ダイのプレーン4にブロックがある。スーパーブロックのブロックは、ダイ全体で同じダイ内インデックスを有する。例えば、スーパーブロックが、ダイゼロにブロックゼロを有する場合、ダイ1、ダイ2、ダイ3にもブロックゼロを有する。一例では、スーパーブロックは、ブロックのセットで表されるプレーンの位置によってスーパーブロックのセットの他のスーパーブロックと区別される。ここで、プレーンの位置は、ダイ内で各プレーンに番号付けされる(例えば、0~N)ように、インデックスによって測定される。一例では、スーパーブロックのセットに2つのスーパーブロックがあり、プレーンの位置は上位または下位で、上位は上位インデックスを有するプレーンの半分に対応し、下位はダイ上の残りのプレーンに対応する。上述のように、この配置の時間は、スーパーブロックをブロックインデックス(例えば、ブロック1)と単一ビットでアドレス指定して、スーパーブロックを構成するのは上位プレーンまたは下位プレーンかを示すのを可能にすることによって、効率を良くしてよい。ブロックインデックスは複数のプレーンにわたってよいため、後続のプレーンブロック指定は、セット分布によって単一のブロックインデックス指定から導出できる。例えば、プレーン0の第1のブロックは、インデックス0を有してよく、プレーン1の第1のブロックは、インデックス503を有してよい。ここで、スーパーブロックは、低ビット(例えば、ゼロに設定)およびブロックインデックス0で参照することができ、これは、分布によって、例えば、ブロック0および503に変換される。
メモリコントローラ115は、メモリデバイス110の変換テーブル(例えば、テーブル130)にスーパーブロックエントリを作成するように構成される。ここで、スーパーブロックエントリは、アレイ120からのブロックのセットを含む。ブロックのセットは、アレイ120の複数のダイにわたって同じであるブロックインデックスを有する。一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある。従って、所与のスーパーブロックは、ダイの異なるプレーンにあるブロックで構成され、各ブロックはダイに固有のインデックスを有する。同じスーパーブロックは、アレイ120の他の全てのダイに同じインデックスのブロックを有する。上記のように、ブロックのセットのうちの一部のブロックのセットは、1つのブロックインデックスに基づいて、分布または他の関数によって規定できる。従って、エントリは単一のブロックインデックスと幅であってよく、分布は1つのダイ内のブロックのセットを含む残りのブロックインデックスを規定し、ブロックインデックスは残りのダイにも当てはまる。
メモリコントローラ115は、ホスト105等の要求エンティティから要求を受信するように構成される。一例では、要求は書き込みである。一例では、要求は読み出しである。一例では、要求はリフレッシュである。一例では、要求はガベージコレクションである。リフレッシュ要求またはガベージコレクション要求に関して、メモリコントローラ115は、例えば、(例えば、メモリマネージャ125によって行われるような)トリガ、自己診断などを介してメモリコントローラ自体から要求を受信してよい。メモリコントローラ115は、スーパーブロックエントリを使用して実行するように構成される。これを達成するために、メモリコントローラ115は、複数のデータセグメントと共にアレイ120の複数のダイに1つの命令を提供するように構成される。ここで、複数のデータセグメントのうちのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されたブロックに対応する。この並列性により、アレイ120のスループットが増加し、よって、メモリデバイス110の性能が向上する。次に、メモリコントローラ115は、要求を実行した結果を要求エンティティに返すように構成される。
メモリマネージャ125は、とりわけ、様々なメモリ管理機能に関連する幾つかのコンポーネントまたは集積回路等の回路またはファームウェアを含み得る。本説明の目的のために、例示的なメモリ動作および管理機能をNANDメモリの文脈で記載する。他の形態の不揮発性メモリが類似のメモリ動作または管理機能を有してよいことを当業者は認識されよう。このようなNAND管理機能には、ウェアレベリング(例えば、ガベージコレクションまたはリクラメーション)、エラー検出もしくは訂正、ブロック使用停止、または、1つまたは複数の他のメモリ管理機能が含まれる。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信されたコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連するコマンド等)に解析またはフォーマットできる、または、アレイコントローラ135またはメモリデバイス110の1つまたは複数の他のコンポーネントに対する(例えば、様々なメモリ管理機能を達成する)デバイスコマンドを生成できる。
メモリマネージャ125は、メモリデバイス110の1つまたは複数のコンポーネントに関連する様々な情報(例えば、メモリアレイまたはメモリコントローラ115に結合された1つまたは複数のメモリセルに関連する様々な情報)を維持するように構成される管理テーブル130のセットを含み得る。例えば、管理テーブル130は、メモリコントローラ115に結合されたメモリセルの1つまたは複数のブロックについて、ブロック経過時間、ブロック消去カウント、エラー履歴、または、1つまたは複数のエラーカウント(例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウント等)に関する情報を含み得る。特定の例では、エラーカウントの1つまたは複数で検出されたエラーの数が閾値を超える場合、ビットエラーは訂正不能ビットエラーと呼ぶことができる。管理テーブル130は、とりわけ、訂正可能または訂正不能なビットエラーのカウントを維持することができ、一例では、管理テーブル103は、変換テーブルまたはL2Pマッピングを含んでよい。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つまたは複数のメモリセルへのデータの書き込み、メモリセルからのデータの読み出し、またはメモリセルの消去に関連するメモリ動作を制御するように構成された回路またはコンポーネントを含み得る。メモリ動作は、例えば、ホスト105から受信されたホストコマンドに基づいてよく、または、(例えば、ウェアレベリング、エラー検出または訂正などに関連して)メモリマネージャ125によって内部的に生成されてよい。
アレイコントローラ135は、エラー訂正コード(ECC)コンポーネント140を含んでよく、ECCコンポーネント140は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つまたは複数のメモリセルへのデータの書き込み、メモリセルからのデータの読み出しに関連するエラーを検出または訂正するように構成されたECCエンジンまたは他の回路を含み得る。メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの整合性を維持しながら、または、(例えば、冗長RAIDストレージ等を使用して)記憶されたデータの整合性を維持しながら、データの様々な操作または記憶に関連するエラー発生(例えば、ビットエラー、動作エラーなど)を能動的に検出および回復するように構成することができ、且つ、障害のあるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロック等)を除去(例えば、使用停止)して、将来のエラーを防ぐことができる。
メモリアレイ120は、例えば、幾つかのデバイス、プレーン、サブブロック、ブロック、またはページに配置された幾つかのメモリセルを含むことができる。一例として、48GB TLC NANDメモリデバイスには、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、デバイスあたり4つ以上のプレーンを含み得る。別の例として、32GBのMLCメモリデバイス(セルあたり2ビットのデータ(すなわち、4つのプログラム可能な状態)を記憶する)には、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1024ページ、プレーンあたり548ブロック、デバイスあたり4プレーンを含むことができるが、必要な書き込み時間は対応するTLCメモリデバイスの半分で、プログラム/消去(P/E)サイクルは2倍である。他の例は、他の数または配置を含み得る。ある例では、メモリデバイスまたはその一部は、SLCモードまたは所望のMLCモード(TLC、QLCなど)で選択的に動作させることができる。
動作時、データは通常、ページ単位でNANDメモリデバイス110に書き込まれ、またはそこから読み出され、ブロック単位で消去される。しかしながら、1つまたは複数のメモリ動作(例えば、読み出し、書き込み、消去など)は、必要に応じて、より大きいまたはより小さいメモリセルグループで行うことができる。NANDメモリデバイス110のデータ転送サイズは通常、ページと呼ばれ、ホストのデータ転送サイズは通常、セクタと呼ばれる。
1ページのデータは、ユーザデータの幾つかのバイト(例えば、データの幾つかのセクタを含むデータペイロード)とそれに対応するメタデータを含み得るが、ページのサイズは、ユーザデータの記憶に使用されるバイト数のみを指すことが多い。例として、4KBのページサイズを持つデータのページは、4KBのユーザデータ(例えば、512Bのセクタサイズを想定した8セクタ)と、整合性データ(例えば、エラー検出または訂正コードデータ)、アドレスデータ(例えば、論理アドレスデータ等)、またはユーザデータに関連する他のメタデータなど、ユーザデータに対応するメタデータのバイト数(例えば、32B、54B、224Bなど)を含み得る。
異なる種類のメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができる、または、それに関連する異なる量のメタデータを必要とすることがある。例えば、メモリデバイスの種類によってビットエラーレートが異なる可能性があり、これは、データのページの整合性を保証するために必要なメタデータの量が異なることにつながり得る(例えば、ビットエラーレートが高いメモリデバイスでは、ビットエラーレートが低いメモリデバイスよりも多くのバイトのエラー訂正コードデータが必要になる場合がある)。例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラーレートを持つ可能性がある。そのため、MLCデバイスは、対応するSLCデバイスよりも多くのメタデータバイトをエラーデータに必要とする場合がある。
図2は、スーパーブロックの例を示す。スーパーブロック245とスーパーブロック250は両方とも、4つのダイの全ての4つプレーン全てに及ぶ完全なまたは全幅のスーパーブロックである。プレーンとダイの間のブロックインデックス関係を示すために、各スーパーブロック内の一部のブロックが図2に示されている。例えば、スーパーブロック245は、プレーン225のブロック205と、プレーン230のブロック215とを含む。上記のように、ブロックインデックスはプレーン間に渡って開始しなくてよい。従って、205と215のブロックインデックスは、205と215が両方とも各プレーンの第1のブロックであっても異なる。しかしながら、ブロック205および215は、ダイ235において、ダイ240のブロック210および220と同じインデックスを有する。従って、ブロックのセットは1つのダイ内のインデックスを指定するだけでよく、これらのインデックスは、スーパーブロックを作成するために、全てのダイに適用される。ブロックのインデックス付けをプレーン内で再開する例では、スーパーブロックは単一のインデックスとプレーンのセットで指定されてよい。また、図示されるように、各スーパーブロック245および250は、ダイおよびプレーンの一意の組み合わせが与えられると最大で1つのブロックを有するが、他の例はプレーン毎に複数のブロックを含み得る。
図3は、可変幅スーパーブロックの例であるスーパーブロックA305およびスーパーブロックB310を示す。ここで、各スーパーブロックA305およびスーパーブロックB310は、幅2を有する。スーパーブロックA305は、ダイ0 325およびダイ1 330の下位プレーン315(網掛部分)からのブロックを含む。スーパーブロックB310は、ダイ0 325およびダイ1 330の上位プレーン320からのブロックを含む。図示の例は、半幅(例えば、50%)のスーパーブロックである。
図4は、可変幅スーパーブロックへの書き込みの例を示す。スーパーブロック415(破線内のブロックを含む)は、ブロック固有のデータセグメント425を提供しながら、ダイ0 405およびダイ1 410に単一の(例えば、同じ)書き込みコマンド420を提供することによって書き込まれる。ダイは、書き込み420をパラレルで行う(が、例えば、ダイ0 405内の各ブロックに対する書き込みは、シリアルであってよい)。
図5は、可変幅スーパーブロックアドレス指定の方法500のフローチャートを示す。方法500の動作は、本明細書に記載されているような電子ハードウェア(例えば、回路)上で行われる。
動作505において、スーパーブロック幅が入手される(例えば、取得または受信される)。一例では、幅はプレーン数で指定される。一例では、プレーン数は、パーセンテージとして指定される。一例では、パーセンテージは、50パーセントである。
一例では、プレーン数は、ダイのプレーンより少ない。一例では、完全なスーパーブロックは、ダイの全てのプレーンに一意のインデックスのブロックを含み、デバイスの全てのダイに及ぶ。一例では、ユーザデータは、完全なスーパーブロックに記憶され、デバイスメタデータは、スーパーブロックに記憶される。
一例では、スーパーブロックは、スーパーブロックのセットのうちの1つである。一例では、スーパーブロックのセットは、デバイスの全てのダイにわたってダイのあらゆるプレーンに一意のインデックスのブロックを含む。一例では、スーパーブロックは、ブロックのセットに表されたプレーンの位置によってスーパーブロックのセットの他のスーパーブロックと区別される。一例では、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位である。ここで、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイ上の残りのプレーンに対応する。
動作510において、スーパーブロックエントリが、変換テーブルに作成される。一例では、スーパーブロックエントリは、デバイスからのブロックのセットを含む。ここで、ブロックのセットは、デバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある。
動作515において、要求を要求エンティティから受信する。一例では、要求は書き込みである。一例では、要求は読み出しである。一例では、要求はリフレッシュである。一例では、要求はガベージコレクションである。
動作520において、要求は、スーパーブロックエントリを用いて実行されて、結果を生成する。要求を実行するために、デバイスの複数のダイと複数のデータセグメントに対して1つの命令が提供される。ここで、複数のデータセグメントのうちのあるデータセグメントが、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されたブロックに対応する。
動作525において、結果が、要求エンティティに返される。
図6は、本明細書で論じている技術(例えば、方法)の任意の1つまたは複数を行うことができるマシン600の例のブロック図を示す。代替実施形態においては、マシン600は、スタンドアロンデバイスとして動作することができる、または、他のマシンに接続されて(例えば、ネットワークで結ばれて)よい。ネットワーク化された配置では、マシン600は、サーバ-クライアントネットワーク環境で、サーバマシン、クライアントマシン、または、その両方として動作することができる。一例では、マシン600は、ピアツーピア(P2P)(または、他の分散)ネットワーク環境でピアマシンとして働くことができる。マシン600は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、web機器、IoTデバイス、自動車システム、または、そのマシンが行うアクションを指定する命令を(順次、または、他の方法で)実行できる任意のマシンであってよい。さらに、単一のマシンを示したが、「マシン」という語は、クラウドコンピューティング、サービス型ソフトウェア(SaaS)、他のコンピュータクラスタ構成等、個別にまたはまとめて命令のセット(または、複数のセット)を実行して、本明細書に記載の方法の任意の1つまたは複数を行うマシンの任意の集まりを含むとみなされる。
本明細書に記載のように、例は、論理、コンポーネント、デバイス、パッケージ、または、機構を含み得る、または、これらによって動作することができる。回路群は、ハードウェア(例えば、単純な回路、ゲート、論理等)を含む有形のエンティティで実装される回路の集まり(例えば、セット)である。回路群の回路は、経時的に、及び、基礎となるハードウェアの変動によって柔軟であってよい。回路群は、動作時に特定のタスクを単独でまたは協働して行うことができる回路を含む。一例では、回路群のハードウェアは、特定の動作を行うように(例えば、ハードワイヤードで)不変的に設計できる。一例では、回路群のハードウェアは、特定の動作の命令を符号化するために(例えば、不変質量の粒子の磁気的、電気的に移動可能な配置等)物理的に修正されたコンピュータ可読媒体を含む可変に接続された物理的コンポーネント(例えば、実行ユニット、トランジスタ、単純回路等)を含み得る。物理的コンポーネントを接続する時、ハードウェア構成の基礎となる電気的特性は、例えば、絶縁体から導体に、または、その逆に変更される。命令は、参加しているハードウェア(例えば、実行ユニットまたはローディング機構)が、動作時に特定のタスクの一部を行うために可変の接続を介してハードウェアの回路群の回路を作成できるようにする。従って、コンピュータ可読媒体は、デバイスが動作している時、回路群の他のコンポーネントに通信可能に結合される。一例では、複数のコンポーネントのいずれかが、複数の回路群の複数の回路で使用されてよい。例えば、動作時、実行ユニットは、ある時点で第1の回路群の第1の回路で使用でき、別の時点で、第1の回路群の第2の回路によって、または、第2の回路群の第3の回路によって再度、使用できる。
マシン(例えば、コンピュータシステム)600(例えば、ホストデバイス105、メモリデバイス110等)は、ハードウェアプロセッサ602(例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、ハードウェアプロセッサコア、または、メモリコントローラ115等、これらの任意の組み合わせ)、メインメモリ604、および、スタティックメモリ606を含むことができ、これらの一部または全ては、インターリンク(例えば、バス)608を介して互いに通信することができる。マシン600は、さらに、表示ユニット610、英数字入力デバイス612(例えば、キーボード)、および、ユーザインタフェース(UI)ナビゲーションデバイス614(例えば、マウス)を含み得る。一例では、表示ユニット610、入力デバイス612、および、UIナビゲーションデバイス614は、タッチスクリーンディスプレイであってよい。マシン600は、ストレージデバイス(例えば、駆動ユニット)616、信号生成装置618(例えば、スピーカ)、ネットワークインタフェースデバイス620、および、全地球測位システム(GPS)センサ、コンパス、加速度計、もしくは、他のセンサ等、1つまたは複数のセンサ616を追加で含んでよい。マシン600は、1つまたは複数の周辺装置(例えば、プリンタ、カードリーダ等)と通信、または、これらを制御するためのシリアル(例えば、ユニバーサルシリアルバス(USB)、パラレル、または、他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)等)接続等、出力コントローラ628を含み得る。
ストレージデバイス621は、本明細書に記載の技術または機能の任意の1つまたは複数を実現する、または、それらによって利用されるデータ構造または命令624の1つまたは複数のセット(例えば、ソフトウェア)を記憶した機械可読媒体622を含み得る。命令624は、マシン600による命令の実行中、メインメモリ604内、スタティックメモリ606内、または、ハードウェアプロセッサ602内に完全に、または、少なくとも部分的に存在することもできる。一例では、ハードウェアプロセッサ602、メインメモリ604、スタティックメモリ606、または、ストレージデバイス621のうちの1つまたはいずれかの組み合わせによって、機械可読媒体622を構成することができる。
機械可読媒体622は単一の媒体として示されるが、「機械可読媒体」という語は、1つまたは複数の命令624を記憶するように構成された単一の媒体または複数の媒体(例えば、集中もしくは分散データベース、または、関連するキャッシュおよびサーバ)を含み得る。
「機械可読媒体」という語は、マシン600によって実行される命令を記憶、符号化、または、運ぶことができ、マシン600に本開示の技術の任意の1つまたは複数を行わせる、または、このような命令によって使用される、もしくは、このような命令に関連付けられたデータ構造を記憶、符号化、または、運ぶことができる任意の媒体を含み得る。制限ではない機械可読媒体の例は、ソリッドステートメモリ、光媒体、および、磁気媒体を含み得る。一例では、大容量の(massed)機械可読媒体は、不変(例えば、静止)質量を持つ複数の粒子を有する機械可読媒体を含む。従って、大容量の(massed)機械可読媒体は、一時的な伝搬信号ではない。大容量の(massed)機械可読媒体の具体的な例は、半導体メモリデバイス(例えば、電気的プログラム可能リードオンリメモリ(EPROM)、電気的消去可能プログラム可能リードオンリメモリ(EEPROM))およびフラッシュメモリデバイス等の不揮発性メモリ、内部ハードディスクおよびリムーバブルディスク等の磁気ディスク、光磁気ディスク、並びに、CD-ROMディスクおよびDVD-ROMディスクを含み得る。
命令624(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)等)または他のデータは、ストレージデバイス621に記憶され、プロセッサ602が使用するためにメモリ604によってアクセスすることができる。メモリ604(例えば、DRAM)は通常、高速であるが、揮発性であり、従って、「オフ」状態中を含む長期記憶に適したストレージデバイス621(例えば、SSD)とは異なる種類のストレージである。ユーザまたはマシン600によって使用される命令624またはデータは通常、プロセッサ602が使用するためにメモリ604にロードされる。メモリ604がいっぱいになると、ストレージデバイス621から仮想空間を、メモリ604を補うために割り当てることができる。しかしながら、ストレージデバイス621は通常、メモリ604より遅く、書き込み速度は通常、読み出し速度の少なくとも半分より遅いので、仮想メモリの使用は、(メモリ604、例えば、DRAMと比較して)ストレージデバイスの待ち時間が原因で、ユーザ体験を大きく低下させる場合がある。さらに、仮想メモリにストレージデバイス621を使用することにより、ストレージデバイス621の使用寿命が大幅に短くなる場合がある。
仮想メモリと比較すると、仮想メモリの圧縮(例えば、Linux(登録商標)カーネル機能「ZRAM」)は、圧縮されたブロックストレージとしてメモリの一部を使用して、ストレージデバイス621へのページングを回避する。ページングは、このようなデータをストレージデバイス621に書き込むことが必要になるまで、圧縮されたブロックで生じる。仮想メモリの圧縮は、ストレージデバイス621の摩耗を低減しながら、メモリ604の使用可能な大きさを増加させる。
モバイル電子デバイスまたはモバイルストレージに合わせて最適化されたストレージデバイスは従来、MMCソリッドステートストレージデバイス(例えば、マイクロセキュアデジタル(microSD(登録商標))カード等)を含む。MMCデバイスは、ホストデバイスとの幾つかのパラレルインタフェース(例えば、8ビットのパラレルインタフェース)を含み、ホストデバイスとは別個のリムーバブルなコンポーネントであることが多い。対照的に、eMMC(登録商標)デバイスは、回路基板に取り付けられ、ホストデバイスのコンポーネントとみなされ、シリアルATA(登録商標)(シリアルAT(アドバンストテクノロジー)アタッチメントもしくはSATA)ベースのSSDデバイスに匹敵する読みとり速度を有する。しかしながら、仮想デバイスまたは拡張現実デバイスを完全に有効にする、向上しているネットワークスピードを完全に利用できるようにする等、モバイルデバイスの性能に対する需要は伸び続け、この需要に応えて、ストレージデバイスは、パラレルからシリアル通信インタフェースにシフトしてきた。コントローラおよびファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用読み出し/書き込みパスを備えた低電圧差動シグナリング(LVDS)シリアルインタフェースを用いてホストデバイスと通信し、読み出し/書き込み速度をさらに速くする。
命令624は、幾つかの転送プロトコル(例えば、フレームリレイ、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)等)のうちの任意のプロトコルを利用して、ネットワークインタフェースデバイス620を介して伝送媒体を用いて通信ネットワーク626経由で送信または受信することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、セルラーネットワーク)、従来の電話(POTS:Plain Old Telephone)ネットワーク、及び、ワイヤレスデータネットワーク(例えば、wi-fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11系規格、WiMax(登録商標)として知られるIEEE802.16系規格)、IEEE802.15.4系規格、ピアツーピア(P2P)ネットワーク等を含み得る。一例では、ネットワークインタフェースデバイス620は、通信ネットワーク626に接続するために1つまたは複数の物理的ジャック(例えば、イーサネットジャック、同軸ジャック、または、電話用ジャック)、または、1つまたは複数のアンテナを含み得る。一例では、ネットワークインタフェースデバイス620は、単一入力複数出力(SIMO)、複数入力複数出力(MIMO)、または、複数入力単一出力(MISO)技術の少なくとも1つを用いて無線で通信する複数のアンテナを含み得る。「伝送媒体」という語はマシン600が実行する命令を記憶、符号化、または、運ぶ任意の無形媒体を含むとみなされ、このようなソフトウェアの通信を促進するデジタルもしくはアナログの通信信号、または、他の無形媒体を含む。
追加の実施例
実施例1は、NANDの可変幅スーパーブロックのアドレス指定のためのNANDデバイスである。このNANDデバイスは、NANDアレイとコントローラとを含み、コントローラは、プレーン数で指定されるスーパーブロック幅を取得し、NANDデバイスの変換テーブルにスーパーブロックエントリを作成することであって、スーパーブロックエントリは、NANDアレイからのブロックのセットを含み、ブロックのセットは、NANDアレイの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成し、要求エンティティから要求を受信し、NANDデバイスの複数のダイと複数のデータセグメントとに対して1つの命令を通して、スーパーブロックエントリを用いて、要求を実行して結果を生成することであって、複数のデータセグメントのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって設定されたブロックに対応する、要求を実行して結果を生成し、且つ、結果を要求エンティティに返す。
実施例2において、実施例1の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例3において、実施例2の主題は、パーセンテージが50パーセントであることを含む。
実施例4において、実施例1~3の主題は、プレーン数がNANDアレイのダイのプレーンより少ないことを含む。
実施例5において、実施例4の主題は、完全なスーパーブロックが、ダイのあらゆるプレーンに対して一意のインデックスのブロックを含み、NANDアレイの全てのダイに及ぶことを含む。
実施例6において、実施例5の主題は、ユーザデータは、完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例7において、実施例4~6の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDアレイの全てのダイにわたるダイのあらゆるプレーンに対して一意のインデックスのブロックを含むことを含む。
実施例8において、実施例7の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例9において、実施例8の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例10において、実施例1~9の主題は、要求が書き込みであることを含む。
実施例11において、実施例1~10の主題は、要求が読み出しであることを含む。
実施例12において、実施例1~11の主題は、要求がリフレッシュであることを含む。
実施例13において、実施例1~12の主題は、要求がガベージコレクションであることを含む。
実施例14は、NANDの可変幅スーパーブロックのアドレス指定の方法である。方法は、プレーン数で指定されたスーパーブロック幅を取得することと、NANDデバイスの変換テーブルにスーパーブロックエントリを作成することであって、スーパーブロックエントリは、NANDデバイスからのブロックのセットを含み、ブロックのセットは、NANDデバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成することと、要求エンティティから要求を受信することと、NANDデバイスの複数のダイと複数のデータセグメントとに1つの命令を提供することによって、スーパーブロックエントリを用いて、要求を実行して結果を生成することであって、複数のデータセグメントのうちのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されたブロックに対応する、要求を実行して結果を生成することと、結果を要求エンティティに返すこととを含む。
実施例15において、実施例14の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例16において、実施例15の主題は、パーセンテージが50パーセントであることを含む。
実施例17において、実施例14~16の主題は、プレーン数がNANDデバイスのダイのプレーンより少ないことを含む。
実施例18において、実施例17の主題は、完全なスーパーブロックは、ダイのあらゆるプレーンの一意のインデックスのブロックを含み、NANDデバイスの全てのダイに及ぶことを含む。
実施例19においては、実施例18の主題は、ユーザデータは完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例20において、実施例17~19の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDアレイの全てのダイにわたるダイのあらゆるプレーンに対して一意のインデックスのブロックを含むことを含む。
実施例21において、実施例20の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例22において、実施例21の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例23において、実施例14~22の主題は、要求が書き込みであることを含む。
実施例24において、実施例14~23の主題は、要求が読み出しであることを含む。
実施例25において、実施例14~24の主題は、要求がリフレッシュであることを含む。
実施例26において、実施例14~25の主題は、要求がガベージコレクションであることを含む。
実施例27は、マシンによって実行されると、マシンに実施例14~26の任意の方法を行わせる命令を含む少なくとも1つの機械可読媒体である。
実施例28は、実施例14~26の任意の方法を行う手段を含むシステムである。
実施例29は、NANDの可変幅スーパーブロックのアドレス指定のための命令を含む機械可読媒体である。命令は、マシンによって実行されると、プレーン数で指定されたスーパーブロック幅を取得することと、NANDデバイスの変換テーブルにスーパーブロックエントリを作成することであって、スーパーブロックエントリは、NANDデバイスからのブロックのセットを含み、ブロックのセットは、NANDデバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成することと、要求エンティティから要求を受信することと、NANDデバイスの複数のダイと複数のデータセグメントとに1つの命令を提供することによって、スーパーブロックエントリを用いて、要求を実行して結果を生成することであって、複数のデータセグメントのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されるブロックに対応する、要求を実行して結果を生成することと、結果を要求エンティティに返すこととを含む動作をマシンに行わせる。
実施例30において、実施例29の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例31において、実施例30の主題は、パーセンテージが50パーセントであることを含む。
実施例32において、実施例29~31の主題は、プレーン数がNANDデバイスのダイのプレーンより少ないことを含む。
実施例33において、実施例32の主題は、完全なスーパーブロックは、ダイのあらゆるプレーンの一意のインデックスのブロックを含み、NANDデバイスの全てのダイに及ぶことを含む。
実施例34において、実施例33の主題は、ユーザデータは、完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例35において、実施例32~34の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDデバイスの全てのダイにわたってダイのあらゆるプレーンの一意のインデックスのブロックを含むことを含む。
実施例36において、実施例35の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例37において、実施例36の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例38において、実施例29~37の主題は、要求が書き込みであることを含む。
実施例39において、実施例29~38の主題は、要求が読み出しであることを含む。
実施例40において、実施例29~39の主題は、要求がリフレッシュであることを含む。
実施例41において、実施例29~40の主題は、要求がガベージコレクションであるであることを含む。
実施例42は、NANDの可変幅スーパーブロックのアドレス指定のためのシステムである。システムは、プレーン数で指定されたスーパーブロックの幅を取得する手段と、NANDデバイスの変換テーブルにスーパーブロックエントリを作成する手段であって、スーパーブロックエントリは、NANDデバイスからのブロックのセットを含み、ブロックのセットは、NANDデバイスの複数のダイにわたって同じであるブロックインデックスを有し、一意のブロックインデックスの数は、プレーン数に等しく、異なるプレーンにある、スーパーブロックエントリを作成する手段と、要求エンティティから要求を受信する手段と、NANDデバイスの複数のダイと複数のデータセグメントとに1つの命令を提供することによって、スーパーブロックエントリを用いて要求を実行して結果を生成する手段であって、複数のデータセグメントのあるデータセグメントは、ブロックのセットの、ブロックインデックスとダイのタプルによって指定されるブロックに対応する、要求を実行して結果を生成する手段と、結果を要求エンティティに返す手段とを含む。
実施例43において、実施例42の主題は、プレーン数がパーセンテージとして指定されることを含む。
実施例44において、実施例43の主題は、パーセンテージが50パーセントであることを含む。
実施例45において、実施例42~44の主題は、プレーン数がNANDデバイスのダイのプレーンより少ないことを含む。
実施例46において、実施例45の主題は、完全なスーパーブロックが、ダイのあらゆるプレーンに対して一意のインデックスのブロックを含み、NANDデバイスの全てのダイに及ぶことを含む。
実施例47において、実施例46の主題は、ユーザデータは、完全なスーパーブロックに記憶され、NANDデバイスメタデータは、スーパーブロックに記憶されることを含む。
実施例48において、実施例45~47の主題は、スーパーブロックは、スーパーブロックのセットのうちの1つであり、スーパーブロックのセットは、NANDデバイスの全てのダイにわたってダイのあらゆるプレーンに対して一意のインデックスのブロックを含むことを含む。
実施例49において、実施例48の主題は、スーパーブロックは、ブロックのセットによって表されるプレーンの位置によって、スーパーブロックのセットの他のスーパーブロックと区別されることを含む。
実施例50において、実施例49の主題は、スーパーブロックのセットは、2つのスーパーブロックを有し、プレーンの位置は上位と下位であり、上位は、上位インデックスを有するプレーンの半分に対応し、下位は、ダイの残りのプレーンに対応することを含む。
実施例51において、実施例42~50の主題は、要求が書き込みであることを含む。
実施例52において、実施例42~51の主題は、要求が読み出しであることを含む。
実施例53において、実施例42~52の主題は、要求がリフレッシュであることを含む。
実施例54において、実施例42~53の主題は、要求がガベージコレクションであることを含む。
実施例55は、処理回路によって実行されると、実施例1~54のいずれかを実施する動作を処理回路に行わせる命令を含む少なくとも1つの機械可読媒体である。
実施例56は、実施例1~54のいずれかを実施する手段を含む装置である。
実施例57は、実施例1~54のいずれかを実施するシステムである。
実施例58は、実施例1~54のいずれかを実施する方法である。
上記詳細な説明は、詳細な説明の一部をなす添付の図面を参照することを含む。図面は、発明を実践することができる特定の実施形態を、例として示している。これらの実施形態は、本明細書では「実施例」とも呼ぶ。このような実施例は、図示または記載した要素に加えて、要素を含み得る。しかしながら、本発明者は、図示または記載したこれらの要素のみを備える実施例も企図する。さらに、本発明者は、特定の実施例(または、その1つまたは複数の態様)に関して、または、本明細書に図示または記載した他の実施例(または、その1つまたは複数の態様)に関して、図示または記載したこれらの要素の任意の組み合わせまたは変形を用いた実施例(または、それらの1つまたは複数の態様)も企図する。
この文書では、「a」または「an」という語は、「少なくとも1つ」または「1つまたは複数」の他の例または使用法とは関係なく、特許文書で一般的なように、1つまたは複数を含むように使用される。この文書では、「または」という用語は、別段の記載のない限り、「AまたはB」が、「AであるがBではない」、「BであるがAではない」、および、「AおよびB」を含み得る非排他的な「または」を指して使用される。添付の請求項において、「含む(including)」および「in which」という語は、それぞれ、「含む(comprising)」および「wherein」という語を平易な英語で表す同等の語として使用される。また、以下の請求項では、「含む(including)」および「含む(comprising)」という語はオープンエンドである、すなわち、請求項において、そのような語の後に列挙されている要素に加えて、他の要素を含むシステム、デバイス、物、またはプロセスも、その請求項の範囲内にあると見なされる。さらに、以下の請求項では、「第1」、「第2」、および「第3」などの語は単にラベルとして使用されており、それらの物体に数字上の要件を課すことを意図していない。
様々な実施例では、本明細書に記載されるコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに記憶された物理回路またはファームウェアを含むことができる。本明細書で使用する場合、「プロセッサ」は、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)、または、プロセッサまたはマルチコアデバイスのグループを含む、その他の種類のプロセッサまたは処理回路などを含むが、これらに限定されない、任意の種類の計算回路を意味する。
この文書で使用される「水平」という語は、任意の時点での基板の実際の向きに関係なく、ウェハまたはダイの下にあるものなど、基板の従来の平面または表面に平行な平面として定義される。「垂直」という用語は、上で定義された水平に対して垂直な方向を指す。「上(on)」、「上(over)」、「下(under)」などの前置詞は、基板の向きに関係なく、基板の上面または露出面にある従来の平面または表面に対して定義される。「上(on)」は、(明確にそうではないことを指示していない限り)ある構造がその構造が載っている別の構造と直接接触していることを意図している。「上(over)」および「下(under)」という語は、構造(または層、特徴など)の相対的な配置を特定することを明確に意図しており、具体的に特定されない限り、特定された構造間の直接接触を明示的に含むが、これに限定されない。同様に、「上(over)」および「下(under)」という用語は、水平方向に限定されず、ある構造が、ある時点で、考察中の構造物の最も外側の部分である場合、このような構造が、水平方向ではなく、基準となる構造に対して垂直に延在していても、基準となる構造の「上(over)」にあるとする。
「ウェハ」および「基板」という語は、本明細書では、集積回路がその上に形成される任意の構造、および集積回路製造の様々な段階のそのような構造を一般的に指して使用される。よって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の請求項と、請求項が権利を持つ均等物の全範囲とによってのみ規定される。
本開示による、また、本明細書に記載される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される場合、方向を表す形容詞は、メモリセルが形成される基板の表面に対して解釈される(すなわち、垂直構造は、基板表面から離れる方に延びるものとみなされ、垂直構造の下端は、基板表面に最も近い端部で、垂直構造の上端は、基板表面から最も遠い端部とみなされる)。
本明細書で使用される場合、水平、垂直、法線、平行、直交などの方向を表す形容詞は、相対的な向きを指すことができ、特に明記しない限り、特定の幾何学的特性に厳密に従うことを必要としない。例えば、本明細書で使用される場合、垂直構造は、基板の表面に対して厳密に垂直である必要はなく、代わりに、基板の表面に対して概ね垂直であってよく、基板の表面と鋭角を形成することができる(例えば、60~120度など)。
本明細書に記載するある実施形態においては、異なるドーピング構成をソース側選択ゲート(SGS)、制御ゲート(CG)、およびドレイン側選択ゲート(SGD)に適用することができ、これらは、それぞれ、この例では、ポリシリコンから形成できる、または、少なくともポリシリコンを含み得る。結果として、これらの層(例えば、ポリシリコン等)は、エッチング溶液に曝されたときに異なるエッチング速度を有することができる。例えば、3D半導体デバイスでモノリシックピラーを形成するプロセスにおいては、SGSとCGは凹部を形成できるが、SGDは、凹部の形成が少ない、または、凹部は形成されないままである。従って、これらのドーピング構成は、エッチング溶液(例えば、水酸化テトラメチルアンモニウム(TMCH))を使用することにより、3D半導体デバイスの別個の層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
本明細書で使用される場合、メモリセルの動作は、メモリセルからの読み出し、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図した状態にする動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去の両方を含むことができる(例えば、メモリセルを消去状態にプログラムすることができる)。
本開示の1つまたは複数の実施形態によると、メモリデバイスの内部または外部にあるメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェア等)は、摩耗サイクルの数、または摩耗状態(例えば、摩耗サイクルの記録、摩耗発生時のメモリデバイスの動作のカウント、摩耗が始まった時のメモリデバイスの動作の追跡、摩耗状態に対応するメモリデバイスの特性の評価など)を判断(例えば、選択、設定、調整、計算、変更、クリア、通信、適応、導出、定義、利用、修正、適用など)できる。
本開示の1つまたは複数の実施形態によれば、メモリアクセスデバイスは、各メモリ動作と共に摩耗サイクル情報をメモリデバイスに提供するように構成することができる。メモリデバイス制御回路(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリデバイスの性能変化を補償するようにプログラムすることができる。メモリデバイスは、摩耗サイクル情報を受信し、摩耗サイクル情報に応答して1つまたは複数の動作パラメータ(例えば、値、特性)を決定することができる。
ある要素が他の要素の「上(on)」、「に接続」、または「と結合」とされる場合、ある要素は他の要素の直接上に、他の要素に接続、もしくは、他の要素と結合してよく、または、介在要素が存在してよいことは、理解されたい。対照的に、ある要素が他の要素「の直接上」、「に直接接続」、または「に直接結合」とされる場合、介在する要素またはレイヤは存在しない。2つの要素がそれらを接続する線と共に図面に示されている場合、別段の記載が無い限り、2つの要素は、接続されるか、または直接結合されてよい。
本明細書に記載の方法の例は、少なくとも部分的にマシンまたはコンピュータで実施できる。一部の例は、上記の例で記載したように方法を行うために電子デバイスを構成するように動作可能な命令で符号化されたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実施態様は、マイクロコード、アセンブリ言語コード、高水準言語コード等のコードを含み得る。このようなコードは、様々な方法を行うためのコンピュータ可読命令を含み得る。コードは、コンピュータプログラム製品の一部を形成することができる。さらに、コードは、実行中または他の時間に、1つまたは複数の揮発性または不揮発性の有形コンピュータ可読媒体上に有形に記憶することができる。これらの有形コンピュータ可読媒体の例は、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスクおよびデジタルビデオディスク)、磁気カセット、メモリカードもしくはスティック、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ソリッドステートデバイス(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイス等を含み得るが、これらに限らない。
上記記載は、限定的ではなく、例示的であることを意図している。例えば、上記の例(または、その1つまたは複数の態様)は、互いに組み合わせて使用することができる。上記の記載を検討すると、当業者等によって、他の実施形態を使用することができる。それは、請求項の範囲または意味を解釈または制限するために使用されないことを理解して提出される。また、上記の詳細な説明では、様々な特徴をグループ化して、開示を簡素化することができる。これは、特許を請求していない開示の特徴が請求項に不可欠であると意図するものとして解釈されるべきではない。むしろ、発明の主題は、特定の開示の実施形態の全ての特徴より少なくてよい。従って、以下の請求項は、詳細な説明に組み込まれ、各請求項は、それ自体で別個の実施形態として独立しており、そのような実施形態は、様々な組み合わせまたは置き換えで、互いに組み合わせることができると考えられる。本発明の範囲は、添付の請求項と、そのような請求項が権利を有する同等物の全範囲とを参照して、決定されるべきである。

本発明の装置は、NANDアレイへのインタフェースと、処理回路とを備え、前記処理回路は、データ構造内にスーパーブロックエントリを作成することにより、NANDダイプレーン内に規定されたスーパーブロック幅に基づくスーパーブロックを作成することであって、前記スーパーブロックエントリは前記スーパーブロック幅及びブロックインデックスを含み、前記スーパーブロック幅及び前記ブロックインデックスは、共に、前記スーパーブロック内にある、前記NANDアレイからのブロックのセットを定義する、ことと、要求エンティティから要求を受信することと、前記スーパーブロックのブロックの前記セットを取得するように前記スーパーブロックエントリを用いて、前記スーパーブロック上で前記要求を実行して結果を生成することであって、前記要求は、前記NANDアレイへの前記インタフェースを介し前記NANDアレイの複数のダイへの単一の命令によって実行される、ことと、前記要求エンティティに前記結果を通知することと、を行うように構成される。本発明のシステムは、前記装置及び前記NANDアレイを備える。

Claims (18)

  1. NANDアレイへのインタフェースと、
    処理回路と、
    を備えた装置であって、
    前記処理回路は、
    データ構造内にスーパーブロックエントリを作成することにより、NANDダイプレーン内に規定されたスーパーブロック幅に基づくスーパーブロックを作成することであって、前記スーパーブロックエントリは前記スーパーブロック幅及びブロックインデックスを含み、前記スーパーブロック幅及び前記ブロックインデックスは、共に、前記スーパーブロック内にある、前記NANDアレイからのブロックのセットを定義する、ことと、
    要求エンティティから要求を受信することと、
    前記スーパーブロックのブロックの前記セットを取得するように前記スーパーブロックエントリを用いて、前記スーパーブロック上で前記要求を実行して結果を生成することであって、前記要求は、前記NANDアレイへの前記インタフェースを介し前記NANDアレイの複数のダイへの単一の命令によって実行される、ことと、
    前記要求エンティティに前記結果を通知することと、
    を行うように構成される、装置。
  2. 前記スーパーブロックは、前記NANDアレイ内のダイ上に配置され且つ前記NANDアレイ内のダイの全てのプレーンをカバーする、スーパーブロックのセットのうちの1つである、請求項1に記載の装置。
  3. 前記スーパーブロックは、前記スーパーブロックの一部であるプレーンの位置によって、スーパーブロックの前記セット内の他のスーパーブロックから区別される、請求項2に記載の装置。
  4. スーパーブロックの前記セットは2つの部分を有し、前記プレーンの前記位置は上位又は下位であり、上位は、上位インデックスを有する前記プレーンの半分に対応し、下位は、前記ダイ上の残りのプレーンに対応する、請求項3に記載の装置。
  5. 前記データ構造は、上位又は下位を示すための単一ビットを含み、前記スーパーブロックエントリを用いて前記スーパーブロック上で前記要求を実行するために、前記要求はブロックインデックスを含み、前記要求は、前記単一ビットによって修正された前記ブロックインデックス上で実行される、請求項4に記載の装置。
  6. 前記要求は、書き込み、読み出し、リフレッシュ、又はガベージコレクションである、請求項1乃至5のいずれか1項に記載の装置。
  7. 前記処理回路は、前記スーパーブロック幅を受信するように構成される、請求項1乃至6のいずれか1項に記載の装置。
  8. 前記スーパーブロック幅は、完全なスーパーブロックに対するパーセンテージとして規定される、請求項1乃至7のいずれか1項に記載の装置。
  9. 前記スーパーブロック幅は少なくとも50パーセントである、請求項8に記載の装置。
  10. 完全なスーパーブロックは、前記ダイ内の全てのプレーンに一意のインデックスのブロックを含み、且つ、前記NANDアレイの全部のダイに及ぶ、請求項8乃至9のいずれか1項に記載の装置。
  11. 完全なスーパーブロック内にユーザデータが記憶され、前記スーパーブロック内にNANDデバイスメタデータが記憶される、請求項8乃至10のいずれか1項に記載の装置。
  12. 前記データ構造は変換テーブルである、請求項1乃至11のいずれか1項に記載の装置。
  13. 前記インタフェースは、ユニバーサルフラッシュストレージ(UFJ)ファミリー規格に準拠する、請求項1乃至12のいずれか1項に記載の装置。
  14. 請求項1乃至13に記載の動作を実行するように前記処理回路を構成する命令を含む機械可読媒体を備える、請求項1乃至13のいずれか1項に記載の装置。
  15. 前記NANDアレイ及び前記装置を備えるシステム。
  16. 請求項13乃至15のいずれか1項に記載の動作を実行するように前記処理回路を構成する命令を含む機械可読媒体を備える、請求項13に記載のシステム。
  17. 前記NANDアレイ及び前記処理回路を収容するためのパッケージングを備える、請求項15乃至16のいずれか1項に記載のシステム。
  18. ユニバーサルフラッシュストレージ(UFS)ファミリー規格に準拠する、前記パッケージングを通るホストインタフェースを備える、請求項17に記載のシステム。

JP2022085158A 2017-12-13 2022-05-25 可変幅スーパーブロックのアドレス指定のための装置及びシステム Pending JP2022111152A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022085158A JP2022111152A (ja) 2017-12-13 2022-05-25 可変幅スーパーブロックのアドレス指定のための装置及びシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2017/115869 WO2019113821A1 (en) 2017-12-13 2017-12-13 Variable width superblock addressing
JP2020532678A JP7080975B2 (ja) 2017-12-13 2017-12-13 可変幅スーパーブロックのアドレス指定のためのnandデバイス、方法、及び機械可読媒体
JP2022085158A JP2022111152A (ja) 2017-12-13 2022-05-25 可変幅スーパーブロックのアドレス指定のための装置及びシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020532678A Division JP7080975B2 (ja) 2017-12-13 2017-12-13 可変幅スーパーブロックのアドレス指定のためのnandデバイス、方法、及び機械可読媒体

Publications (1)

Publication Number Publication Date
JP2022111152A true JP2022111152A (ja) 2022-07-29

Family

ID=66818762

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020532678A Active JP7080975B2 (ja) 2017-12-13 2017-12-13 可変幅スーパーブロックのアドレス指定のためのnandデバイス、方法、及び機械可読媒体
JP2022085158A Pending JP2022111152A (ja) 2017-12-13 2022-05-25 可変幅スーパーブロックのアドレス指定のための装置及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020532678A Active JP7080975B2 (ja) 2017-12-13 2017-12-13 可変幅スーパーブロックのアドレス指定のためのnandデバイス、方法、及び機械可読媒体

Country Status (6)

Country Link
US (2) US11132136B2 (ja)
EP (1) EP3724768A4 (ja)
JP (2) JP7080975B2 (ja)
KR (1) KR102492729B1 (ja)
CN (1) CN112055850B (ja)
WO (1) WO2019113821A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102492729B1 (ko) 2017-12-13 2023-01-27 마이크론 테크놀로지, 인크. 가변 폭 수퍼 블록 어드레싱
US11693773B2 (en) * 2019-03-15 2023-07-04 Kioxia Corporation Systems and methods for implementing a four-dimensional superblock
US10872035B1 (en) * 2019-05-29 2020-12-22 Apple Inc. Systems and methods for managing an artificially limited logical space of non-volatile memory
CN115712386A (zh) * 2021-08-23 2023-02-24 华为技术有限公司 超级块管理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211225A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2012099139A (ja) * 2003-12-30 2012-05-24 Sandisk Corp データラン・プログラミング
JP2012519900A (ja) * 2009-03-04 2012-08-30 マイクロン テクノロジー, インク. メモリブロックの管理
US20160274791A1 (en) * 2015-03-18 2016-09-22 SK Hynix Inc. Memory system and operating method thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
JP4737223B2 (ja) 2008-04-21 2011-07-27 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8838876B2 (en) 2008-10-13 2014-09-16 Micron Technology, Inc. Translation layer in a solid state storage device
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US9332276B1 (en) * 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
CN102866956B (zh) * 2012-09-14 2015-02-18 上海宝存信息科技有限公司 基于固态存储介质的数据实时跟踪存储系统及方法
US9431113B2 (en) * 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9268502B2 (en) * 2013-09-16 2016-02-23 Netapp, Inc. Dense tree volume metadata organization
US9823863B1 (en) 2014-06-30 2017-11-21 Sk Hynix Memory Solutions Inc. Sub-blocks and meta pages for mapping table rebuild
US9582201B2 (en) * 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US10007451B2 (en) * 2015-03-20 2018-06-26 SK Hynix Inc. Scalable SPOR algorithm for flash memories
US10180805B2 (en) * 2015-03-25 2019-01-15 SK Hynix Inc. Memory system and operating method thereof
KR102492729B1 (ko) 2017-12-13 2023-01-27 마이크론 테크놀로지, 인크. 가변 폭 수퍼 블록 어드레싱
US10372355B2 (en) * 2017-12-29 2019-08-06 Micron Technology, Inc. Managing partial superblocks in a NAND device
US10990320B2 (en) * 2019-02-01 2021-04-27 Western Digital Technologies, Inc. Systems and methods to optimally select metablocks
US11693773B2 (en) * 2019-03-15 2023-07-04 Kioxia Corporation Systems and methods for implementing a four-dimensional superblock

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012099139A (ja) * 2003-12-30 2012-05-24 Sandisk Corp データラン・プログラミング
JP2009211225A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2012519900A (ja) * 2009-03-04 2012-08-30 マイクロン テクノロジー, インク. メモリブロックの管理
US20160274791A1 (en) * 2015-03-18 2016-09-22 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
EP3724768A4 (en) 2021-07-21
EP3724768A1 (en) 2020-10-21
KR20200096614A (ko) 2020-08-12
US11132136B2 (en) 2021-09-28
WO2019113821A8 (en) 2020-07-09
US20210181940A1 (en) 2021-06-17
JP2021507372A (ja) 2021-02-22
KR102492729B1 (ko) 2023-01-27
CN112055850B (zh) 2024-04-23
US20220011936A1 (en) 2022-01-13
US11740819B2 (en) 2023-08-29
WO2019113821A1 (en) 2019-06-20
CN112055850A (zh) 2020-12-08
JP7080975B2 (ja) 2022-06-06

Similar Documents

Publication Publication Date Title
US10996867B2 (en) Managing partial superblocks in a NAND device
US11704254B2 (en) Host side caching security for flash memory
US11922053B2 (en) NAND logical-to-physical table region tracking
US11714712B2 (en) Extended error correction in storage device
US11341041B2 (en) Synchronizing NAND logical-to-physical table region tracking
US11740819B2 (en) Variable width superblock addressing
US11609819B2 (en) NAND device mixed parity management
US11663120B2 (en) Controlling NAND operation latency

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231128