JP2012519899A - メモリブロックの選択 - Google Patents

メモリブロックの選択 Download PDF

Info

Publication number
JP2012519899A
JP2012519899A JP2011552932A JP2011552932A JP2012519899A JP 2012519899 A JP2012519899 A JP 2012519899A JP 2011552932 A JP2011552932 A JP 2011552932A JP 2011552932 A JP2011552932 A JP 2011552932A JP 2012519899 A JP2012519899 A JP 2012519899A
Authority
JP
Japan
Prior art keywords
groups
superblock
write operation
group
superblocks
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.)
Granted
Application number
JP2011552932A
Other languages
English (en)
Other versions
JP5458419B2 (ja
Inventor
アスナアシャリ,メディー
チェン,アラン
ネマジー,シアマック
ピー. マクナマラ,デール
Original Assignee
マイクロン テクノロジー, インク.
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 マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2012519899A publication Critical patent/JP2012519899A/ja
Application granted granted Critical
Publication of JP5458419B2 publication Critical patent/JP5458419B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/7202Allocation control and policies
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

本開示は、メモリブロックの選択のための方法およびデバイスを含む。1つ以上の実施形態において、メモリコントローラは、それに関連するプレーンの複数のグループを有する1つ以上のメモリデバイスに結合される制御回路を含み、各グループは、スーパーブロックに体系化される物理ブロックの少なくとも2つのプレーンを含み、各スーパーブロックとともに、少なくとも2つのプレーンの各々からの1つの物理ブロックを含む。制御回路は、書き込み動作に関連する第1の未割り当ての論理ブロックアドレス(LBA)を受信し、書き込み動作に関連するデータを受信するために、複数のグループのうちの選択される1つの内部で特定の空いているスーパーブロックを決定するように構成される。
【選択図】図4A

Description

本開示は、概して、半導体メモリデバイス、方法、およびシステムに関し、より具体的には、メモリブロックの選択に関する。
メモリデバイスは、典型的に、コンピュータまたは他の電子デバイスの中の内部の、半導体、集積回路として提供される。揮発性および不揮発性メモリを含む、多種多様なメモリが存在する。揮発性メモリは、そのデータを維持するために電源を要求する可能性があり、数ある中でも、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、およびシンクロナスダイナミックランダムアクセスメモリ(SDRAM)が挙げられる。不揮発性メモリは、電源に接続されていない時に記憶された情報を保持することによって永続的データを提供することができ、数ある中でも、NANDフラッシュメモリ、NORフラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、および相変化ランダムアクセスメモリ(PCRAM)を挙げることができる。
メモリデバイスは、ソリッドステートドライブ(SSD)を形成するように一体化することができる。ソリッドステートドライブは、多様な他のタイプの不揮発性および揮発性メモリの中でも、例えば、NANDフラッシュメモリおよびNORフラッシュメモリ等の不揮発性メモリを含むことができ、かつ/または、例えば、DRAMおよびSRAM等の揮発性メモリを含むことができる。
ソリッドステートドライブは、性能、サイズ、重量、耐久性、動作温度範囲、電力消費の点においてハードドライブに優る利点を有することができるため、SSDは、ハードディスクドライブに代わって、コンピュータ用の主記憶装置として使用することができる。例えば、SSDは、稼動部がないことに起因して、磁気ディスクドライブに比較すると優れた性能を有することができ、磁気ディスクドライブに関連する、シーク時間、待ち時間、および他の電気機械的遅延を改善する場合がある。SSD製造者は、内部のバッテリー電源を使用しなくてもよいフラッシュSSDを作成するために不揮発性フラッシュメモリを使用することができ、これによって、ドライブの多用途化および小型化を可能にする。
SSDは、いくつかのメモリデバイス、例えば、いくつかのメモリチップを含むことができる(本明細書に使用される「いくつかの」物とは1つ以上の該当物を参照することができ、例えば、いくつかのメモリデバイスは、1つ以上のメモリデバイスを参照することができる)。当業者が理解するであろうように、メモリチップがいくつかのダイを含むことができる。各ダイは、いくつかのメモリアレイおよびその上の周辺回路を含むことができる。メモリアレイは、いくつかのプレーンを含むことができ、各プレーンとともに、メモリセルのいくつかの物理ブロックを含む。各物理ブロックは、データのいくつかのセクタを記憶することができる、メモリセルのいくつかのページを含むことができる。
SSD内のメモリブロック選択は、例えば、どの物理ブロックにデータを書き込むか、およびどの物理ブロックを消去するか、ならびに物理ブロックが書き込まれかつ消去される順番を判定することが関与する可能性がある。SSDの中で使用されるメモリセルは、有限数の書き込み‐消去サイクルに限定される可能性があり、これはドライブの寿命を決定する可能性がある。このように、メモリブロックの選択効率および割り当て効率を改善することは、SSDの寿命を増加することができる。
複数の物理ブロックを含み、本開示の1つ以上の実施形態に従って動作できる、メモリアレイの図である。 本開示の1つ以上の実施形態に従って動作することができる、プレーンの複数のグループを有するいくつかのメモリデバイスを示す図である。 本開示の1つ以上の実施形態に従うメモリシステムの機能ブロック図である。 本開示の1つ以上の実施形態に従うメモリブロックの選択を示す機能ブロック図である。 本開示の1つ以上の実施形態に従うメモリブロックの選択を示す機能ブロック図である。 本開示の1つ以上の実施形態に従うメモリブロックの選択を示す機能ブロック図である。 本開示の1つ以上の実施形態に従うメモリブロックの選択を示す機能ブロック図である。
本開示は、メモリブロックの選択のための方法およびデバイスを含む。1つ以上の実施形態において、メモリコントローラは、それに関連するプレーンの複数のグループを有する1つ以上のメモリデバイスに結合される制御回路を含み、各グループは、スーパーブロックに体系化される物理ブロックの少なくとも2つのプレーンを含み、各スーパーブロックとともに、少なくとも2つのプレーンの各々から1つの物理ブロックを含む。制御回路は、書き込み動作に関連する第1の未割り当ての論理ブロックアドレス(LBA)を受信し、書き込み動作に関連するデータを受信するために、複数のグループのうちの選択された1つの内部で特定の空いているスーパーブロックを判定するように構成される。
本開示の以下の発明を実施するための形態では、本明細書の一部を形成し、その中で、本開示の1つ以上の実施形態がどのように実践される場合があるかを例として示す、添付の図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実践することを可能にするように十分な詳細が説明され、他の実施形態が利用されてもよいこと、および本開示の範囲を逸脱することなく、プロセス、電気的、および/または構造的変更が行われてもよいことが理解される。本明細書に使用される場合、指定子「M」、「N」、「S」、「R」および「B」は、特に図面の参照番号に関して、そのように指定されるいくつかの特定の特徴が、本開示の1つ以上の実施形態と共に含まれる可能性があることを示す。指示子は、特定の特徴の同じまたは異なる数を表すことができる。
本明細書中の図面は、図面番号に対応する上位の桁は、図面の図番号に対応し、残りの桁は、図面の中の要素または構成要素を識別するという、番号規則に従う。異なる図面間の同様な要素または構成要素は、同様な数字の使用によって識別される場合がある。例えば、110は、図1の要素「10」を参照する場合があり、類似要素が、図2の210として参照される場合がある。理解されるように、本明細書の多様な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するように、追加、交換、および/または削除することができる。加えて、理解されるように、図面の中に提供される要素の比率および相対スケールは、本開示の実施形態を図示することを目的とし、限定の意味で解釈されてはならない。
図1は、複数の物理ブロック104‐0(ブロック0)、104‐1(ブロック1)、・・・、104‐B(ブロックB)を含み、本開示の1つ以上の実施形態に従って動作され得る、メモリアレイ102の図である。図1には示されていないが、当業者は、メモリアレイ102を、その動作に関連する多様な周辺回路に加えて、特定の半導体ダイ上に配置することができることを理解するであろう。
図1に示される例において、インジケータ「B」は、アレイ102がいくつかの物理ブロックを含むことができることを示すために使用される。例として、アレイ102の中の物理ブロックの数は、128ブロック、512ブロック、または1,024ブロックであってもよいが、実施形態は、128の特定の倍数、またはアレイ102の中の物理ブロックの任意の特定の数に限定されない。さらに、実施形態は、例えば、不揮発性、揮発性等、アレイの中で使用されるメモリのタイプに限定されない。図1に示される実施形態において、メモリアレイ102は、例えば、NANDフラッシュメモリアレイ102とすることができる。
この例において、各物理ブロック104‐0、104‐1、・・・、104‐Bは、ユニットとして一緒に消去することができるメモリセルを含み、例えば、各物理ブロックの中のセルは、実質的に同時の様式で消去でき。例えば、各物理ブロックの中のセルは、単一の動作で一緒に消去することができる。各物理ブロック、例えば、104‐0、104‐1、・・・、104‐Bは、アクセスライン、例えば、ワード線に結合されるメモリセルのいくつかの物理列、例えば、106‐0、106‐1、・・・、106‐Rを包含する。インジケータ「R」は、物理ブロック、例えば、104‐0、104‐1、・・・、104‐Bがいくつかの列を含むことができることを示すために使用される。いくつかの実施形態において、各物理ブロックの中の列、例えば、ワード線の数は、32とすることができるが、実施形態は、物理ブロックあたりの列106‐0、106‐1、・・・、106‐Rの特定の数に限定されない。
当業者が理解するように、各列106‐0、106‐1、・・・、106‐Rは、データの1つ以上のページを記憶することができる。ページとは、プログラミングおよび/または読み出しの単位、例えば、一緒にまたはメモリセルの機能グループとしてプログラムおよび/または読み出されるいくつかのセルを言う。図1に示される実施形態において、各列106‐0、106‐1、・・・、106‐Rは、1ページのデータを記憶する。しかしながら、本開示の実施形態はそのように限定されない。例えば、本開示のいくつかの実施形態において、各列は、複数ページのデータを記憶することができる。
本開示の1つ以上の実施形態において、および図1に示されるように、列106‐0、106‐1、・・・、106‐Rに関連するページは、データのいくつかの物理セクタ108‐0、108‐1、・・・、108‐Sに応じて、データを記憶することができる。インジケータ「S」は、例えば、106‐0、106‐1、・・・、106‐R等の列がいくつかの物理セクタを含むことができることを示すために使用される。各物理セクタ108‐0、108‐1、・・・、108‐Sは、論理セクタに対応することができ、エラー修正コード(ECC)情報、および論理ブロックアドレス(LBA)情報等のオーバーヘッド情報、ならびにユーザデータを含むことができる。当業者が理解するように、論理ブロックアドレッシングは、情報の論理セクタを識別するために、ホストによってしばしば使用されるスキーマである。例として、論理セクタは、例えば、256バイト、512バイト、または1,024バイト等、データのいくつかのバイトを表す情報を記憶することができる。実施形態はこれらの例に限定されない。
物理ブロック104‐0、104‐1、・・・、104‐B、列106‐0、106‐1、・・・、106‐R、セクタ108‐0、108‐1、・・・、108‐Sおよびページに対する他のフォーマットおよび/または構成が可能であることに注意する。例えば、物理ブロック104‐0、104‐1、・・・、104‐Bの列106‐0、106‐1、・・・、106‐Rは、例えば、おおよそ512バイトのデータを含むことができる、単一の論理セクタを含むことができる。
図2は、本開示の1つ以上の実施形態に従って動作することができる、プレーンの複数のグループを有するいくつかのメモリデバイスを示す図である。本明細書に説明される1つ以上の実施形態に従い、メモリセルの物理ブロックのプレーンは、メモリブロックの選択の目的のためにグループに体系化される。1つ以上の実施形態において、グループは、1つ以上の異なるメモリアレイからいくつかのプレーンを含むことができる。1つ以上の実施形態において、1つのグループに対応する1つ以上のプレーンは、異なるメモリデバイスからとすることができる。
図2に示される実施形態は、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3を含む。メモリデバイス230‐0、230‐1、230‐2、および230‐3の組み合わせは、図3に関連して本明細書にさらに説明するメモリユニット325等のメモリユニットとして参照できる。1つ以上の実施形態において、メモリデバイス230‐0、230‐1、230‐2、および230‐3は、ソリッドステートドライブ(SSD)のメモリユニットを形成する。
メモリデバイス230‐0、230‐1、230‐2、および230‐3は各々、チップあたり複数のダイを含む半導体メモリチップとすることができる。当業者は、特定のチップ上の各ダイがメモリアレイに加えてその動作に関連する多様な周辺回路(図2には図示せず)を含むことができることを理解するであろう。
図2に図示される実施形態において、各メモリデバイス230‐0、230‐1、230‐2、および230‐3は、2つのメモリアレイ202‐0および202‐1(それぞれ、ダイ0およびダイ1として示される)を含む。各メモリアレイ202‐0および202‐1は、図1に関して説明されたアレイ102等のフラッシュメモリアレイとすることができる。例えば、各メモリアレイ202‐0および202‐1は、図1に示されたブロック104‐0、104‐2、・・・、104‐B等のメモリセルの複数の物理ブロックを含む。
当業者が理解するであろうように、例えば、202‐0および202‐1等のアレイの物理ブロックは、複数のプレーンに体系化することができる。例えば、図2に図示される実施形態において、メモリアレイの各々は、物理ブロックの第1のプレーン(プレーン0)および物理ブロックの第2のプレーン(プレーン1)に分割される。しかしながら、本開示の実施形態は、アレイあたり特定の数のプレーンに限定されない。例えば、多様な実施形態において、メモリアレイは、1つのプレーンだけを含んでもよく、または2つを超えるプレーンを含んでもよい。
図2に示される実施形態において、メモリデバイス230‐0、230‐1、230‐2、および230‐3に関連する物理ブロックのプレーンは、2つのグループ、例えば、240‐0(グループ0)および240‐1(グループ1)に体系化される。図2に図示される実施形態において、各グループ240‐0および240‐1は、4つのメモリアレイの各々からのプレーンの各々を含む。例えば、グループ240‐0は、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3の各々の内部のアレイ202‐0(ダイ0)のプレーン(プレーン0およびプレーン1)を含む。グループ240‐1は、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3の各々の内部のアレイ202‐1(ダイ1)のプレーン(プレーン0およびプレーン1)を含む。
実施形態は、図2に示される例に限定されない。例えば、1つ以上の実施形態において、グループは、単一のアレイ内部のプレーンの収集物を含むことができる。例として、1つのグループは、デバイス230‐0のアレイ202‐0のプレーン0およびプレーン1を含むことができ、別のグループは、デバイス230‐0のアレイ202‐1のプレーン0およびプレーン1を含むことができ、別のグループは、デバイス230‐1のアレイ202‐0のプレーン0およびプレーン1を含むことができる。
いくつかの実施形態において、グループは、単一のメモリデバイスの異なるアレイ内部にいくつかのプレーンを含むことができる。例として、1つのグループは、デバイス230‐0のアレイ202‐0のプレーン0およびアレイ202‐1のプレーン0を含むことができ、別のグループは、デバイス230‐0のアレイ202‐0のプレーン1およびアレイ202‐1のプレーン1を含むことができる。別の例として、1つのグループは、デバイス230‐0のアレイ202‐0のプレーン0およびプレーン1ならびにアレイ202‐1のプレーン0およびプレーン1を含むことができ、別のグループは、デバイス230‐1のアレイ202‐0のプレーン0およびプレーン1ならびにアレイ202‐1のプレーン0およびプレーン1を含むことができる。
例えば、202‐0および202‐1等のアレイが複数のプレーンを含む実施形態において、プレーンのグループは、いくつかの実施形態においては、異なるメモリデバイスの1つ以上のアレイの各々から1つのプレーンを含んでもよい。例えば、図2を参照すると、1つ以上の実施形態において、いくつかのグループの各々は、4つのそれぞれのメモリデバイス内部の4つのメモリアレイの各々から1つのプレーンの収集物を含むことができる。例えば、1つのグループは、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3の各々内部のアレイ202‐0(ダイ0)のプレーン0を含むことができる。第2のグループは、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3の各々内部のアレイ202‐0(ダイ0)のプレーン1を含むことができる。第3のグループは、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3の各々内部のアレイ202‐1(ダイ1)のプレーン0を含むことができ、第4のグループは、4つのメモリデバイス230‐0、230‐1、230‐2、および230‐3の各々内部のアレイ202‐1(ダイ1)のプレーン1を含むことができる。
1つ以上の実施形態において、および図2に図示されるように、グループ240‐0および240‐1は各々、例えば、スーパーブロック0、スーパーブロック1、・・・、スーパーブロックN等、それに関連するいくつかのスーパーブロックを有する。本明細書に使用される場合、スーパーブロックとは、対応するグループ内部の各プレーンからの1つの物理ブロックを含む、物理ブロックの収集物を示すことができる。1つ以上の実施形態において、スーパーブロックは、複数のメモリデバイス全体に及ぶことができる。例えば、スーパーブロックは、対応するグループ内部に、異なるメモリデバイス内部の少なくとも2つのメモリアレイの各々の内部のプレーンからの1つの物理ブロックを含む、物理ブロックの収集物とすることができる。
実施形態は、グループあたり特定の数のスーパーブロックに限定されない。例として、1つのグループ、例えば、240‐0および240‐1は、グループあたり64、512、または1,024のスーパーブロックを含むことができる。図2に図示された実施形態において、グループ240‐0に関連するスーパーブロック245‐0、245‐1、・・・、245‐Nは各々、例えば、4つのそれぞれのメモリデバイス230‐0、230‐1、230‐2、および230‐3に関連するダイ0等、4つのアレイ202‐0の各々からのいくつかの物理ブロックを含む物理ブロックのそれぞれの収集物である。また、グループ240‐1に関連するスーパーブロック245‐0、245‐1、・・・、245‐Nは各々、4つのアレイ202‐1、例えば、4つそれぞれのメモリデバイス230‐0、230‐1、230‐2、および230‐3に関連するダイ1、の各々からのいくつかの物理ブロックを含む物理ブロックのそれぞれの収集物、である。
本開示の1つ以上の実施形態において、スーパーブロックは、特定のグループに対応するいくつかのプレーンの各々に対して、プレーンあたり1つの物理ブロックの収集物とすることができる。例えば、図2に図示される実施形態において、スーパーブロック245‐0、245‐1、・・・、245‐Nの各々は、8つの物理ブロック(グループの4つの異なるメモリデバイス230‐0、230‐1、230‐2、および230‐3の各アレイ202‐0に対してプレーンあたり1つのブロック)のそれぞれの収集物であり得る。
しかしながら、1つ以上の実施形態において、スーパーブロックは、例えば、202‐0および202‐1等の所与のメモリアレイの中のあらゆるプレーンから1つの物理ブロックを含む必要はない。例えば、図2に図示される実施形態において、スーパーブロック245‐0、245‐1、・・・、245‐Nの各々は、例えば、グループの4つの異なるメモリデバイス230‐0、230‐1、230‐2、および230‐3の各アレイ202‐0の中のプレーンのうちの1つからの1つのブロック、または4つの異なるメモリデバイス230‐0、230‐1、230‐2、および230‐3の各アレイ202‐1の中のプレーンのうちの1つからの1つのブロック等、4つの物理ブロックのそれぞれの収集物とすることができる。
多様な実施形態において、消去動作は、スーパーブロックの物理ブロック上で同時に実行することができる。つまり、特定のスーパーブロックの物理ブロックの収集物は、実質的に同時に消去することができる。また、多様な実施形態において、特定のスーパーブロックに関連する物理ブロックのページは、同時に読み出しおよび書き込みすることができる。
本開示の実施形態は、図2に図示される例に限定されない。例えば、1つ以上の実施形態において、グループは、おおよそ4つぐらいのメモリアレイ内部の物理ブロックのプレーンを含むことができる。例として、図2に示される実施形態は、次のように4つのグループに体系化できる可能性がある。第1のグループは、メモリデバイス230‐0および230‐1内部のアレイ202‐0(ダイ0)のプレーンを含むことができる可能性があり、第2のグループは、メモリデバイス230‐2および230‐3内部のアレイ202‐0(ダイ0)のプレーンを含むことができる可能性があり、第3のグループは、メモリデバイス230‐0および230‐1内部のアレイ202‐1(ダイ1)のプレーンを含むことができる可能性があり、第4のグループは、メモリデバイス230‐2および230‐3内部のアレイ202‐1(ダイ1)のプレーンを含むことができる可能性がある。この例において、4つのグループに関連するスーパーブロックは、2つの物理ブロック(特定のグループに関連する2つのアレイの各々から1つの物理ブロック)を含むことができる可能性があるか、または4つの物理ブロック(特定のグループに関連する2つのアレイの各々に対して、プレーンあたり1つの物理ブロック)を含むことができる可能性がある。例として、4つの物理ブロック(特定のグループに関連する2つのアレイの各々に対してプレーンあたり1つの物理ブロック)のスーパーブロックは、物理ブロックあたり128ページ、およびページあたり8つの物理セクタ(4KBページを想定)、合計でスーパーブロックあたり4,096物理セクタを含むことができる。この例において、LBAの4,096アドレスの範囲を、特定の4,096セクタの物理スーパーブロックにマップすることができる。しかしながら、本開示の実施形態は、特定のページ、サイズ、セクタサイズ、および/または物理ブロックサイズに限定されない。例えば、実施形態は、スーパーブロックあたり特定の数のセクタに限定されない。
1つ以上の実施形態において、例えば、245‐0から245‐N等の特定のスーパーブロック内の物理ブロックは、異なるブロック位置番号を有することができる。つまり、特定のスーパーブロック内部の物理ブロックは、例えば、240‐0および240‐1等の所与のグループに対応するプレーン内部の異なる場所に位置付けることができる。1つの例として、グループ240‐0のスーパーブロック245‐0に対応する物理ブロックを検討する。スーパーブロック245‐0に対応する物理ブロックの収集物は、デバイス230‐0のアレイ202‐0の上位部分近傍に位置付けられる物理ブロックを含むことができ、かつ、デバイス230‐1、230‐2、および230‐3のアレイ202‐0の中位または下位部分近傍に位置付けられる物理ブロックを含むことができる。
図3に関して以下にさらに説明するように、ソリッドステートドライブ等のメモリシステムは、メモリアクセスデバイス、例えば、ラップトップ、PC、メディアプレーヤ、デジタルカメラ等のホストデバイスのプロセッサから、データ書き込み動作に関連する論理ブロックアドレス(LBA)を受信することが可能なコントローラを含むことができる。コントローラは次いで、書き込み動作に対応するデータが書き込まれる特定の物理的場所、例えば、物理ブロックアドレス(PBA)を判定することができる。コントローラは、データが書き込まれる空いているブロックの場所を判定するための多様な方法を使用してもよい。例えば、LBAを空いているPBAにマッピングするための1つ以上の参照テーブル(LUT)が維持されてもよい。
図3は、本開示の1つ以上の実施形態に従うメモリシステム300の機能ブロック図である。1つ以上の実施形態において、システム300は、ソリッドステートドライブである。つまり、図3の実施形態は、ソリッドステートドライブ300の実施形態の構成要素およびアーキテクチャを示すことができる。図3に図示される実施形態において、システム300は、コントローラ320と、ホストインターフェース324と、アレイインターフェース326と、ソリッドステートメモリユニット325と、を含む。
図3に図示される実施形態において、メモリユニット325は、いくつかのメモリデバイス330‐0、330‐1、・・・、330‐Nを含む。例として、メモリデバイスは、数ある中でも、例えば、NANDフラッシュまたはNORフラッシュデバイス等のフラッシュメモリのような不揮発性メモリデバイスとすることができる。メモリデバイス330‐0、330‐1、・・・、330‐Nは、図2に関して説明されるメモリデバイス230‐0、230‐1、230‐2、および230‐3等のメモリデバイスとすることができる。図3には示されないが、1つ以上の実施形態において、メモリデバイス330‐0、330‐1、・・・、330‐Nの各々は、SSD300の特定のチャネルに組み込むことができる。つまり、システム300は、マルチチャネルシステムとすることができる。
1つ以上の実施形態において、および図3に図示されるように、メモリデバイス330‐0、330‐1、・・・、330‐Nの各々は、いくつかのメモリアレイ302‐0、302‐1、302‐3、・・・、302‐Mを含む。メモリアレイ302‐0、302‐1、302‐3、・・・、302‐Mは、図1に関して説明されたメモリアレイ102または図2に関して説明されたメモリアレイ202‐0および202‐1等のアレイとすることができる。例えば、メモリアレイ302‐0、302‐1、302‐3、・・・、302‐Mの各々は、複数の物理ブロックのメモリセルを含むことができる。1つ以上の実施形態において、メモリアレイ302‐0、302‐1、302‐3、・・・、302‐Mの各々は、単一のダイを表すことができ、メモリデバイス330‐0、330‐1、・・・、330‐Nの各々は、チップあたり複数のダイを有するメモリチップを表すことができる。
1つ以上の実施形態において、メモリユニット325内部のメモリセルの物理ブロックのプレーンは、図2に関して上記で説明したように、複数のグループに体系化され得る。例えば、グループは、それに関連するいくつかのスーパーブロックを有することができる。スーパーブロックは、グループに対応する複数のプレーンから物理ブロックを含む各収集物を備える物理ブロックのそれぞれの収集物とすることができる。
図3に図示されるように、メモリユニット325は、アレイインターフェース326を介してコントローラ320に結合することができる。アレイインターフェース326は、メモリユニット325とコントローラ320との間で情報を通信するために使用することができる。コントローラ320は、ホストインターフェース324を介して、例えば、ホストデバイス(図示せず)のプロセッサ等のメモリアクセスデバイスに結合することができる。ホストデバイスは、多様な他のコンピューティングデバイスの中でも、パーソナルコンピュータ(PC)、ラップトップコンピュータ、デジタルカメラ、メディアプレーヤ、または携帯電話等のコンピューティングデバイスを含むことができる。例として、メモリユニット325が、図3に図示されるように、コンピューティングデバイスの中のデータストレージのために使用される場合、ホストインターフェース324は、数ある中でも、シリアルアドバンスドテクノロジアタッチメント(SATA)とすることができ、例えば、コントローラ320は、数ある中でも、SATAコントローラまたはUSBコントローラとすることができる。つまり、実施形態は、特定のタイプのコントローラ320および/またはホストインターフェース324に限定されない。
1つ以上の実施形態において、および図3に図示されるように、コントローラ320は、制御回路322を含む。制御回路322は、メモリシステム300の動作のために、他の制御回路(図示せず)の中でも、プロセッサ323と、スペースマネージャ327と、例えば、RAM等のメモリ329と、を含む。1つ以上の実施形態において、コントローラ320は、メモリユニット325へデータを書き込み、かつメモリユニット325からデータを読み出すために使用される。
1つ以上の実施形態において、コントローラ320は、ホストインターフェース324を介して、ホストデバイスから論理ブロックアドレス(LBA)331を受信することができる。メモリブロックの選択に対する先行技術の手法とは対照的に、本開示の1つ以上の実施形態において、コントローラ320によって受信されるLBA331は、未割り当てのLBAとすることができる。つまり、受信されるLBA331は、特定のグループ、例えば、図2に示されるグループ240‐0および240‐1等のプレーンのグループに予め割り当てられていない。また、多様な実施形態において、受信されるLBA331は、特定のスーパーブロック、例えば、図2に示されるスーパーブロック245‐0から245‐Nまでに予め割り当てられていない。
例えば、1つ以上の実施形態において、制御回路、例えば、制御回路322は、第1の書き込み動作に関連する第1の未割り当てのLBAを受信し、第1の書き込み動作に関連するデータを受信するために、複数のグループのうちの選択された1つの内部の特定の空いているスーパーブロックを判定するように構成される。本明細書で使用される場合、未割り当てのLBAとは、特定のグループに予め割り当てられていないLBAを言い、つまり、LBAが書き込み動作と共に受信される時、書き込み動作に関連するデータが書き込まれる予定の、例えばグループ等の場所は予め決定されていない。
1つ以上の実施形態において、制御回路322は、第1の未割り当てのLBAを含むLBAの範囲を、複数のグループのうちの選択された1つの内部の特定の空いているスーパーブロックに割り当てるように構成される。多様な実施形態において、制御回路322は、第2の書き込み動作に関連する第2のLBAを受信し、第2のLBAが、選択されたスーパーブロックに割り当てられたLBAの範囲内にある(例えば、第2のLBAは書き込まれていない、またはアクセスされていないが、特定のスーパーブロックに以前に割り当てられたLBAの範囲内にある)場合、第2の書き込み動作に対応するデータを同じ選択されたスーパーブロックに書き込むように構成することができる。
1つ以上の実施形態において、第2のLBAは、未割り当てのLBAとすることができる(例えば、第2のLBAは、特定のスーパーブロックに以前に割り当てられたLBA範囲内にないLBAとすることができる)。このような実施形態において、制御回路は、第2の未割り当てのLBAを異なる選択されたスーパーブロックに割り当てるように構成することができる(例えば、第1の書き込み動作に対応するデータが書き込まれる、選択されたスーパーブロック以外のスーパーブロック)。
多様な実施形態において、制御回路322は、複数のグループの各々に対して、各グループの中で使用可能な空いているスーパーブロックの数を追跡するように構成される。制御回路322は、少なくとも部分的に、複数のグループの各々の中で使用可能な空いているスーパーブロックの数に基づいて、第1の書き込み動作に関連するデータを受信するために、複数のグループのうちの1つを選択するように構成することができる。1つ以上の実施形態において、制御回路は、少なくとも部分的に、複数のグループの各々について、使用されているスーパーブロックに対する空いているスーパーブロックの比率に基づいて、第1の書き込み動作に関連するデータを受信するために、複数のグループのうちの1つを選択するように構成される。
1つ以上の実施形態において、制御回路322は、第1の書き込み動作以降の複数のグループのうちのそれぞれ選択された1つを、以前に未割り当てのLBAに割り当てるように構成されるので、以前に未割り当てのLBAに対応する全ての以降の書き込み動作に関連するデータは、それぞれ割り当てられたグループ内部の空いているスーパーブロックに書き込まれる。
図4A〜図4Dを参照して以下にさらに説明するように、1つ以上の実施形態において、制御回路322は、第2の書き込み動作に関連する第2のLBA、例えば、以降の書き込み動作に関連する異なるLBAを受信し、第2の書き込み動作に関連するデータを受信するために、複数のグループのうちの選択された1つの内部の特定の空いているスーパーブロックを判定するように構成される。制御回路322は、ラウンドロビン方式で、以降の書き込み動作に関連するデータを受信するために、複数のグループのうちの1つを選択するように構成することができる。多様な実施形態において、以降の書き込み動作に関連する複数のグループのうちの選択された1つは、書き込み動作に関連する複数のグループのうちの選択された1つとは異なる。
本明細書に使用される場合、第1の書き込み動作および第2の書き込み動作という用語は、例えば、特定の書き込み動作および以降の書き込み動作等、異なる書き込み動作を示すために使用することができる。つまり、第1および第2の書き込み動作という用語は、連続的な動作または実行の特定時間に限定されない。
多様な実施形態において、未割り当てのLBAが特定のグループ(例えば、第1の書き込み動作における複数のグループのうちの選択された1つの内部の特定のスーパーブロック)に割り当てられると、特定のLBA(例えば、以前に未割り当てのLBA)は、第2の(例えば、以降の)書き込み動作に関連して更新されてもよい。1つ以上の実施形態において、新しい空いているスーパーブロックは、第2の書き込み動作に関連して、以前に未割り当てのLBAに割り当てられるので、第2の書き込み動作に対応する更新されたデータは、新しいスーパーブロック(例えば、第1の動作において特定のLBAに対応するデータが書き込まれたスーパーブロックとは異なるスーパーブロック)に書き込まれるようになる。1つ以上のこのような実施形態において、新しいスーパーブロックは、第1の動作において特定のLBAに対応するデータが書き込まれたスーパーブロックと同じグループまたは異なるグループとすることができる。
本明細書に説明されるように、新しいスーパーブロックは、第2の書き込み動作に関連して、多様な様式で選択することができる(例えば、グループ各々に対して判定される空いているスーパーブロックのカウントに基づく、グループ各々に組み込まれる、使用されているスーパーブロックに対する空いているスーパーブロックの比率に基づく、グループの中でのラウンドロビン方式等)。例えば、いくつかの実施形態において、制御回路322は、複数のグループの各々に対して、空いているスーパーブロックの現在の数を判定し、少なくとも部分的に、複数のグループの各々に対して判定された空いているスーパーブロックの現在の数に基づいて、第2の書き込み動作に対応するデータを受信するために、複数のグループのうちの1つを選択するように構成することができる。多様な実施形態において、第2の書き込み動作に対応するデータは、最多数の空いているスーパーブロックを有するグループ内部のスーパーブロックに書き込まれる。
例として、いくつかの実施形態において、スーパーブロックの各々は、4,096LBAに対応することができる、4,096セクタのデータを記憶することが可能である場合がある(例えば、この例において、1つのLBAは、1つのセクタのデータに対応すると想定する)。この例において、4,096LBAの範囲を、スーパーブロックの各々に割り当てることができる。多様な実施形態において、制御回路が、特定のスーパーブロックに以前に割り当てられたLBA範囲内にあるLBAを受信する場合、LBAに対応するデータは、同じ特定のスーパーブロックに書き込まれる。受信されるLBAが未割り当てのLBA(例えば、スーパーブロックに以前に割り当てられたLBAの範囲の外側にあるLBA)である場合、そのLBAに対応するデータは、新しい(例えば、異なる)スーパーブロックに書き込まれる。
メモリユニット325等のメモリユニットのメモリセルの物理ブロックが、図2に示されるグループ240‐0および240‐1等の複数のグループに体系化される、メモリブロックの選択に対する多様な先行技術の手法において、コントローラによって受信される各LBAまたは特定の範囲のLBAは、書き込み動作に伴い、特定のグループに予め割り当てられる。このような先行手法において、コントローラは、特定のLBAを受信し、次いで、データがその後書き込まれる特定のグループ内の空いているスーパーブロックを検出するために、LBAが予め割り当てられている特定のグループを検索する。
しかしながら、多様な事例において、ホストデバイスに関連するオペレーティングシステムまたはアプリケーションプログラムは、同じLBAまたはLBA範囲にデータを、例えば、再書き込みする等、更新してもよい。例えば、特定のLBAに対応するデータは頻繁に更新することができる。このような場合、特定のLBAは特定のグループに予め割り当てられているので、特定のLBAに対応する各以降の書き込み動作は、コントローラが同じグループ内部の選択された物理ブロックにデータを書き込むことになる。このような先行技術のメモリブロックの選択手法は、一定のグループ内部の物理ブロックが、例えば、書き込まれかつ消去される等、頻繁にプログラムされる一方で、他のグループ内部の物理ブロックはめったに使用されないままであるように、メモリユニット全体にわたって不均一なウェアをもたらす可能性がある。メモリユニット325等のメモリユニット全体にわたる不均一なウェアは、使用頻度の高い物理ブロックに関連する修正不可能な書き込みエラーおよび消去エラーのような問題につながる可能性があり、メモリユニットの耐用年数を削減する可能性がある。
1つ以上の実施形態において、第1の書き込み動作に関連するデータが書き込まれる特定のグループの選択、および第2の書き込み動作に関連するデータが書き込まれる特定のグループとの選択は、ラウンドロビン方式で実行される。つまり、第1の書き込み動作に関連するデータを受信するために特定のグループが選択される場合、第2の書き込み動作に関連するデータを受信するために異なるグループが選択される。1つ以上の実施形態において、少なくとも1回データを受信するためにグループの各々が選択されるまで、以降の書き込み動作に関連するデータを受信するために異なるグループを選択することができる。
1つ以上の実施形態において、制御回路、例えば322は、メモリアレイの複数のグループの各々に対して、各グループ、例えば、図2に関して説明されたグループ240‐0および240‐1の中で使用可能な空いているスーパーブロックの数を追跡するように構成することができる。例として、各グループ内部の空いているスーパーブロックの数のカウントを維持することができる。別の例として、1つ以上の実施形態において、各グループに対して使用可能な空いているスーパーブロックの数を示すリスト、例えば、参照テーブル(LUT)を維持することができる。カウントおよび/またはリストは、数ある場所の中でも、コントローラ320のメモリ329内部またはメモリユニット325内部等の多様な場所に記憶され得る。当業者が理解するように、制御回路322の機能は、他のタイプのハードウェア、ソフトウェア、および/またはファームウェアによって実行されてもよい。
1つ以上の実施形態において、特定の書き込み動作に関連するデータが書き込まれる特定のグループと、以降の書き込み動作に関連するデータが書き込まれる特定のグループとの選択は、少なくとも部分的に、複数のグループの各々で使用可能な空いているスーパーブロックの数に基づく。例えば、多様な実施形態において、最多数の空いているスーパーブロックを有する特定のグループは、第1の書き込み動作に関連するデータを受信するために選択される。また、多様な実施形態において、最多数の空いているスーパーブロックを有する特定のグループは、以降の書き込み動作に関連するデータを受信するために選択される。特定のグループが最多数の空いているスーパーブロックを有するグループに基づいて選択される実施形態において、選択されるグループは、特定および以降の書き込み動作の両方で同じであってもよい。
1つ以上の実施形態において、特定の書き込み動作に関連するデータが書き込まれる特定のグループ、および以降の書き込み動作に関連するデータが書き込まれる特定のグループの選択は、少なくとも部分的に、複数のグループの各々について、使用されているスーパーブロックに対する空いているスーパーブロックの比率に基づく。多様な実施形態において、制御回路は、グループ、例えば、図2に示されたグループ240‐0および240‐1の各々について、使用されているスーパーブロックに対する空いているスーパーブロック(例えば、初期化時)の初期の比率を判定するように構成することができ、次いで、空いているスーパーブロックに書き込まれる時に各グループの比率を更新することができる。例として、多様な実施形態において、使用されているスーパーブロックに対する空いているスーパーブロックとの最高比率を有する特定のグループは、第1の書き込み動作に関連するデータを受信するために選択される。また、多様な実施形態において、使用されているスーパーブロックに対する空いているスーパーブロックの最高比率を有する特定のグループは、以降の書き込み動作に関連するデータを受信するために選択される。特定のグループが使用されているスーパーブロックに対する空いているスーパーブロックの最高比率を有するグループに基づいて選択される実施形態において、選択されるグループは、特定および以降の書き込み動作の両方で同じであってもよい。
1つ以上の実施形態において、制御回路、例えば、320は、特定の受信されたLBAに対応するデータが書き込まれる、選択されたグループ内部の特定のスーパーブロックを判定するように構成される。例えば、選択されたグループに関連するテーブルは、選択されたグループ内の適当な空いているスーパーブロックを判定するために検索することができる。1つ以上の実施形態において、制御回路は、第1の書き込み動作以降に、複数のグループのうちの選択された1つを第1の特定の未割り当てのLBAに割り当てるように構成することができるので、以前の未割り当てのLBAに対応する全ての以降の書き込み動作に関連するデータは、割り当てられたグループ内部の空いているスーパーブロックに書き込まれる。
つまり、1つ以上の実施形態において、未割り当てのLBAが特定の書き込み動作に伴いコントローラによって受信され、それに関連するデータが選択されたグループ内部のスーパーブロックに書き込まれると、コントローラは、特定のLBAを特定の選択されたグループに割り当てることができるので、コントローラが、以降の書き込み動作に伴い同じ特定のLBAを受信する時、データは割り当てられたグループに書き込まれる。いくつかのこのような実施形態において、第2の特定の未割り当てのLBAが、次の特定の書き込み動作に伴いコントローラによって受信され、それに関連するデータが異なる選択されたグループ、例えば、第1の特定の未割り当てのLBAに関連する特定の選択されたグループとは異なる選択されたグループに書き込まれると、コントローラは、その第2の特定のLBAを異なる選択されたグループに割り当てることができるので、コントローラが、以降の書き込み動作に伴い第2の特定のLBAを受信する時、データは、割り当てられた異なるグループに書き込まれる。
図4A、図4B、図4C、および図4Dは、本開示の1つ以上の実施形態に従うメモリブロックの選択を示す機能ブロック図である。図4Aに図示される実施形態において、論理ブロックアドレス431は、特定の書き込み動作に関連して、コントローラ420によって受信される特定の未割り当てのLBA(LBA0)を表す。図4Bは、図4Aの書き込み動作以降、例えば、第1の書き込み動作以降、プレーンのいくつかのグループ(例えば、図2に示されたグループ240‐0および240‐1)内部の物理スーパーブロック(例えば、図2に示されたスーパーブロック245‐0から245‐N)のステータスを図示する。
図4Cに図示される実施形態において、論理ブロックアドレス431は、以降の書き込み動作、例えば、図4Aおよび4Bの動作以降の書き込み動作に関連して、コントローラ420によって受信される同じ特定のLBA(LBA0)を表す。つまり、図4Cの論理ブロックアドレス431は、更新された状態のLBA0を表し、例えば、LBA0に関連するデータは、更新されたデータである。同様に、図4Dに図示される実施形態において、論理ブロックアドレス431は、図4Aおよび図4Bの動作以降の書き込み動作に関連して、コントローラ420によって受信される同じ特定のLBA(LBA0)を表す。つまり、図4Dの論理ブロックアドレス431もまた、更新された状態のLBA0を表し、例えば、LBA0に関連するデータは、更新されたデータである。コントローラ420は、図3に関して上記で説明したコントローラ320等のコントローラとすることができる。
図4A、図4B、図4Cおよび図4Dに図示される実施形態において、コントローラ420は、メモリユニット425、例えば、図3に関して説明されたメモリユニット325等のメモリユニットに結合される。図示されるように、メモリユニット425は、示されるように、いくつかのグループ、例えば、グループ0、グループ1、グループ2、およびグループ3に体系化される。図4A、図4B、図4C、および図4Dに図示されるグループは、図2に関して説明されたグループ240‐0および240‐1等のプレーンのグループとすることができる。例えば、図4A、図4B、図4C、および図4Dに図示される実施形態において、複数のグループは各々、グループに対応する少なくとも2つのプレーンの各々からの物理ブロックのそれぞれの収集物を含むことができる(例えば、グループは、図2に関して説明されたスーパーブロック245‐0、245‐1、・・・、245‐N等のスーパーブロックを含むことができる)。図示されるように、各グループは、8つのスーパーブロックを含む。つまり、各グループは、位置SB0からSB7までのうちの各1つに位置付けられるスーパーブロックを含む。図2に関して上記で説明したように、多様な実施形態において、スーパーブロックは、異なるメモリアレイ(例えば、202‐0および202‐1)内部および/または異なるメモリデバイス(例えば、230‐0、230‐1、230‐2、および230‐3)内部に位置付けられるプレーンから物理ブロックを含むことができる。
図4Aに図示される実施形態は、論理ブロックアドレス431に対応する書き込み動作、例えば、第1の書き込み動作の時点でのグループ(グループ0からグループ3まで)の各々の内部のスーパーブロックのステータスを図示し、一方で、図4Bは、書き込み動作後および以降の動作、例えば、第2の書き込み動作の前のグループの各々の内部のスーパーブロックのステータスを図示する。図4Cに示される実施形態は、論理ブロックアドレス431に対応する以降の書き込み動作、例えば、第2の書き込み動作後のグループの各々の内部のスーパーブロックのステータスを図示する。図4Dに示される実施形態もまた、論理ブロックアドレス431に対応する以降の書き込み動作、例えば、第2の書き込み動作後のグループの各々の内部のスーパーブロックのステータスを図示する。
図4A、図4B、図4C、および図4Dに図示される実施形態において、「使用されている」と記載されたスーパーブロックは、有効なデータを含有するスーパーブロックを表し、書き込み動作に関連するデータを受信するためには現在使用不可能である。「旧」と記載されたスーパーブロックは、古いデータを含有するスーパーブロック、例えば、もはや有効ではなくなったデータを含有するスーパーブロックを表し、書き込みデータを受信するために使用可能になる前に消去されなければならない。「使用されている」または「旧」と記載されていないスーパーブロックは、空いているスーパーブロックであり、例えば、書き込みデータを受信するために現在使用可能である、消去されたスーパーブロックである。
上記のように、1つ以上の実施形態において、制御回路、例えば、コントローラ420の制御回路は、第1の書き込み動作において、特定のLBA、例えばLBA0に対応するデータを、複数のグループのうちの選択された1つの内部のスーパーブロックのうちの選択された1つに書き込み、第2の書き込み動作、例えば、以降の書き込み動作において、特定のLBAに対応する更新されたデータを、複数のグループのうちの選択された1つの内部のスーパーブロックのうちの選択された1つに書き込むように構成することができる。
上記のように、1つ以上の実施形態において、複数のグループ、例えば、グループ0からグループ3までの各々に対して空いている物理ブロックの数を追跡することができる。例えば、図4Aに図示されるように、この例では、グループ0は、4つの空いているスーパーブロックを有するように判定され、グループ1は、4つの空いているスーパーブロックを有するように判定され、グループ2は、5つの空いているスーパーブロックを有するように判定され、グループ3は、6つの空いているスーパーブロックを有するように判定される。図4Aに図示される実施形態において、グループ435(グループ3)は、複数のグループの各々の中の空いているスーパーブロックの判定された数に基づいて、LBA0 431に対応するデータを受信するために選択される。
この例では、グループ3は、最多数の空いているスーパーブロックを有するグループであるという事実に基づいて、LBA0 431に対応するデータを受信するために選択される。つまり、図4Aにおいては、グループ3が他のグループの中で使用可能な空いているスーパーブロックの数よりも多い、6つの空いているスーパーブロックを有するために、グループ435が選択される。
1つ以上の実施形態において、コントローラ420は、受信されたLBA、例えば、図4Aに示された例においてはLBA0 431を、選択されたグループ、例えば、グループ435内部の特定の空いている物理スーパーブロックに割り当てる。例えば、選択されたグループ435は、関連する書き込み動作に対応するデータを受信するために、好適な空いているスーパーブロックを判定するために検索することができる。図4Aに示される例において、受信されたLBA、例えば、LBA0 431は、選択されたスーパーブロック441である、グループ3の中の位置SB2に配置されたスーパーブロックに割り当てられる。このように、図4Aに示された例に関連する第1の書き込み動作に応答するデータは、選択されたグループ435内の選択されたスーパーブロック441に対応するPBAに書き込まれることになる。
図4Bは、図4Aの第1の書き込み動作以降の、グループ0からグループ3までの内部のスーパーブロックのステータスを示す。このように、スーパーブロック441は現在、有効なデータを含有し、もはや空いている物理スーパーブロックではないため、選択されたスーパーブロック441のステータスは、図4Bにおいて「使用されている」と示される。
図4Cに図示される実施形態において、論理ブロックアドレス431は、第2の書き込み動作、例えば、図4Aおよび図4Bの書き込み動作以降の書き込み動作に関連して、コントローラ420によって受信される同じ特定のLBA(LBA0)を表す。つまり、図4Cの論理ブロックアドレス431は、更新された状態のLBA0を表し、例えば、LBA0に関連するデータは、更新されたデータである。コントローラ420は、LBA0 431に対応する更新されたデータを、第2の書き込み動作、例えば、以降の書き込み動作において、複数のグループのうちの選択された1つの内部のスーパーブロックのうちの選択された1つに書き込むように構成される。
1つ以上の実施形態において、および図4Cに示された例に図示されるように、以降の書き込み動作に関連する更新されたデータを受信するために選択されたグループは、第1の書き込み動作において選択されたのと同じグループとすることができる。つまり、1つ以上の実施形態において、特定のLBAがグループに割り当てられると、そのLBAは、グループに割り当てられたままとすることができるので、以降の書き込み動作において特定のLBAに関連する更新されたデータは、同じグループ内部の選択されたスーパーブロックに書き込まれる。
例えば、図4Aおよび図4Bに図示される例において、第1の書き込み動作に関連する受信されたLBA、例えば、LBA0 431は、グループ3に割り当てられた。図4Cに図示される例において、同じLBA、例えば、LBA0 431は、以降の書き込み動作に関して受信され、更新されたデータは、同じグループ、例えば、この例においてグループ3内部の空いているスーパーブロックに書き込まれる。図4Cに示される例において、更新されたデータを受信するために選択された空いているスーパーブロックは、選択されたグループ438内部の位置SB3に位置付けられる。このように、選択されたスーパーブロック443は、有効なデータを現時点で含有しているため、「使用されている」と記載される。図4Cに示されるように、スーパーブロック441内部のデータは現在古い、例えば、無効であるため、スーパーブロック441のステータスは、「使用されている」から「旧」に変更されている。
1つ以上の実施形態において、および図4Dに関して以下に説明するように、以降の書き込み動作(例えば、第2の書き込み動作)において特定のLBAに対応するデータを受信するための、複数グループのうちの選択された1つは、前の書き込み動作(例えば、第1の書き込み動作)において同じ特定のLBAに対応するデータを受信するために、複数のグループのうちの選択された1つとは異なる可能性がある。つまり、1つ以上の実施形態において、特定のLBAがグループに割り当てられると、そのLBAを、異なるグループに割り当てることができるので、以降の書き込み動作において特定のLBAに関連する更新されたデータは、異なるグループ内部の選択されたスーパーブロックに書き込まれる。
例えば、図4Dに図示される実施形態において、論理ブロックアドレス432は、第2の書き込み動作、例えば、図4Aおよび図4Bの書き込み動作以降の書き込み動作に関連して、コントローラ420によって受信される同じ特定のLBA(LBA0)を表す。つまり、図4Dの論理ブロックアドレス432は、更新された状態のLBA0を表し、例えば、LBA0に関連するデータは、更新されたデータである。コントローラ420は、第2の書き込み動作、例えば、以降の書き込み動作において、LBA0 432に対応する更新されたデータを、複数のグループのうちの選択された1つの内部のスーパーブロックのうちの選択された1つに書き込むように構成される。
例えば、図4Aおよび図4Bに図示される例において、第1の書き込み動作に関連する受信されたLBA、例えば、LBA0 431は、グループ3に割り当てられた。図4Dに図示される例において、同じLBA、例えば、LBA0は、以降の書き込み動作に関して受信され、更新されたデータは、異なるグループ、例えば、この例のグループ2内部の空いているスーパーブロックに書き込まれる。図4Dに示される例において、更新されたデータを受信するために選択されたグループ438内部の選択された空いているスーパーブロックは、選択されたグループ438内部の位置SB3に位置付けられる。このように、選択されたスーパーブロック447は、有効なデータを現時点で含有しているため、「使用されている」と記載される。図4Dに示されるように、スーパーブロック441内部のデータは現在古い、例えば、無効であるため、スーパーブロック441のステータスは、「使用されている」から「旧」に変更されている。
図4A〜図4Dに図示される実施形態において、グループ435およびグループ438は、複数のグループのうちのどれが最多数の空いている物理ブロックを有するかに基づいて選択することができる。つまり、図4Aおよび図4Bにおいて、グループ3が、他のグループの中で使用可能な空いているスーパーブロックの数より多い、6つの空いているスーパーブロックを有するため、グループ435が選択される。同様に、図4Dにおいては、グループ2が、以降の書き込み動作の前に、他のグループの中で使用可能な空いているスーパーブロックの数より多い、5つの空いているスーパーブロックを有するため、グループ438が選択される。
図4A〜図4Dに図示される実施形態において、受信されたLBA、例えば、LBA0は、複数のグループ、例えば、グループ0からグループ3までのうちの特定の1つに予め割り当てられていない。つまり、LBA0は、第1の書き込み動作において、選択されたグループ435に割り当てられる前に、特定のグループに予め割り当てられておらず、例えば、LBA0は、第1の書き込み動作以前には未割り当てのLBAである。
図4Dに図示される実施形態において、LBA0は、第2の書き込み動作において選択されたグループ435に割り当てられたままではない。特定のLBAに関連する以降の書き込み動作のために異なるグループを選択することは、複数のグループの中でより効率的なウェアレベリング等の利点をもたらすことができる。
上記のように、1つ以上の実施形態において、複数のグループの各々の内部の空いているスーパーブロックのカウントを維持することができ、特定の受信されたLBA、例えば、図4A〜図4Dに示される実施形態におけるLBA0は、少なくとも部分的に、特定のグループに関連する空いているスーパーブロックのカウントに基づいて、複数のグループのうちの1つに割り当てることができる。
上記のように、本開示の1つ以上の実施形態は、複数のグループ内部に古いデータを有する物理的ブロックを判定すること、ならびに古いブロックがいつ消去されるかを判定することを含むことができる。複数のグループ内部の古いブロックが消去される様式は、それぞれ図3および図4に示されるメモリユニット325および425等のメモリユニットの寿命に影響を及ぼし得る。
1つ以上の実施形態において、消去されている古い物理ブロック(例えば、「旧」と記載されたブロック)は、特定の時点およびグループごとの方式で、各グループの中の使用可能な空いている物理ブロックの数に追加することができる。例えば、1つ以上の実施形態において、コントローラ、例えば、420は、複数のグループの各々に対して、グループがいかなる空いている物理ブロックをも含まなくなるまで、古いデータを有する物理ブロックが消去されることを防止するように構成することができる。例として、図4Cおよび図4Dに示されるグループの中の「旧」と記載されたスーパーブロックは、特定のグループがいかなる使用可能な空いているスーパーブロックをも有しなくなるまで、消去されることから防止され得る。
また、1つ以上の実施形態において、コントローラは、複数のグループの各々に対して、グループがいかなる空いているスーパーブロックをも含まなくなるまで、グループ内部の消去されたスーパーブロックが、グループに関連する空いているスーパーブロックの数に追加されることを防止するように構成することができる。例えば、使用可能な空いているスーパーブロックのリストが維持される実施形態において、新しい書き込みデータを受信することができるように消去されている、古いブロックは、特定のグループがいかなる空いているスーパーブロックをも含まなくなるまで、使用可能な空いているスーパーブロックのリストに追加されることから防止され得る。
1つ以上の実施形態において、特定グループ内部の古いブロックは、グループがまだ空いているスーパーブロックを有する間に消去することができる。いくつかのこのような実施形態において、消去されている古いブロックは、好適な時点まで、空いているスーパーブロックのリストに追加されなくてもよい。消去された古いブロックが、空いているスーパーブロックのリストに直ちに返されることを防止することは、新しく消去された古いブロックにLBAが割り当てられ、リスト上にまだ書き込まれていない空いているスーパーブロックが書き込まれる前に、新しい書き込みデータを受信することを防止することによって、メモリユニットのウェアを改善することができる。
1つ以上の実施形態において、消去動作は、特定のスーパーブロック内部の物理ブロックの各々を実質的に同時に消去することによって実行される。例えば、図2を参照すると、グループ240‐0のスーパーブロック245‐0内部の物理ブロックの各々は、実質的に同時に消去することができる。1つ以上の実施形態において、古いブロックの消去は、異なるグループ全体にわたって均一に実行することができる。例えば、図2を参照すると、グループ240‐0および240‐1両方のスーパーブロック245‐1内部の物理ブロックは、同時に消去することができる。1つ以上の実施形態において、古いブロックの消去は、ラウンドロビン様式で実行することができる。例えば、図4Aを参照すると、グループ0からのスーパーブロックは消去することができ、グループ0からの別のスーパーブロックは、グループ1、グループ2、およびグループ3の各々からのスーパーブロックが消去されてしまうまで、消去されることから防止されてもよい。
結論
本開示は、メモリブロックの選択のための方法およびデバイスを含む。本開示の実施形態は、メモリユニット内部のウェアを改善することによって、フラッシュメモリユニット等のメモリユニットの寿命を増加することができる。
1つ以上の実施形態において、メモリコントローラは、それに関連するプレーンの複数のグループを有する1つ以上のメモリデバイスに結合される制御回路を含み、各グループは、スーパーブロックに体系化される少なくとも2つのプレーンの物理ブロックを含み、各スーパーブロックとともに、少なくとも2つのプレーンの各々からの1つの物理ブロックを含む。制御回路は、書き込み動作に関連する第1の未割り当ての論理ブロックアドレス(LBA)を受信し、書き込み動作に関連するデータを受信するために、複数のグループのうちの選択された1つの内部で特定の空いているスーパーブロックを判定するように構成される。
本明細書には具体的な実施形態が図示および説明されているが、当業者は、同じ結果を達成するように考案された配設を、示された具体的な実施形態に代えることができることを理解するであろう。本開示は、本開示の1つ以上の実施形態の適応または変形を包含することを意図する。
上記の説明は、制限の様式ではなく、図説の様式において行われたものである。上記の実施形態の組み合わせ、および本明細書に具体的に説明されない他の実施形態が、上記の説明を検討することによって、当業者には明らかとなるであろう。本開示の1つ以上の実施形態の範囲は、上記の構造および方法が使用される他の用途を含む。したがって、本開示の1つ以上の実施形態の範囲は、添付の特許請求の範囲に加えて、このような特許請求の範囲が権利を与えられる均等物の完全な範囲を参照して決定されなければならない。
前述の発明を実施するための形態では、開示を簡素化するために、いくつかの特徴が単一の実施形態にまとめられている。この開示方法は、本開示の開示される実施形態が、各請求項に明記されるよりも多くの特徴を有するという意図を反映するものとして解釈されるべきではない。
そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴に満たない中に存する。したがって、以下の特許請求の範囲がここで発明を実施するための形態に組み入れられ、各特許請求の範囲は個別の実施形態として独立する。

Claims (34)

  1. メモリコントローラであって、
    それに関連する複数のグループのプレーンを有する1つ以上のメモリデバイスに結合される制御回路であって、各グループは、スーパーブロックに体系化される物理ブロックの少なくとも2つのプレーンを含み、各スーパーブロックとともに、前記少なくとも2つのプレーンの各々から1つの物理ブロックを含み、
    書き込み動作に関連する第1の未割り当ての論理ブロックアドレス(LBA)を受信し、
    前記書き込み動作に関連するデータを受信するために、前記複数のグループのうちの選択された1つの内部の特定の空いているスーパーブロックを判定するように構成される、制御回路を備える、メモリコントローラ。
  2. 前記制御回路は、前記複数のグループの各々に対して、各グループの中の使用可能な空いているスーパーブロックの数を追跡するように構成される、請求項1に記載のメモリコントローラ。
  3. 前記制御回路は、少なくとも部分的に、前記複数のグループの各々の中の使用可能な空いているスーパーブロックの前記数に基づいて、前記書き込み動作に関連するデータを受信するために、前記複数のグループのうちの前記1つを選択するように構成される、請求項2に記載のメモリコントローラ。
  4. 前記制御回路は、少なくとも部分的に、前記複数のグループの各々に対する、使用されているスーパーブロックに対する空いているスーパーブロックの比率に基づいて、前記書き込み動作に関連するデータを受信するために、前記複数のグループのうちの前記1つを選択するように構成される、請求項2に記載のメモリコントローラ。
  5. 前記制御回路は、
    以降の書き込み動作に関連する、異なる未割り当てのLBAを受信し、
    前記以降の書き込み動作に関連するデータを受信するために、前記複数のグループのうちの選択された1つの内部の特定の空いているスーパーブロックを判定するように構成される、請求項1から4のいずれか1項に記載のメモリコントローラ。
  6. 前記制御回路は、前記以降の書き込み動作に関連するデータを受信するために、ラウンドロビン方式で、前記複数のグループのうちの前記1つを選択するように構成される、請求項5に記載のメモリコントローラ。
  7. 前記以降の書き込み動作に関連する前記複数のグループのうちの前記選択された1つは、前記書き込み動作に関連する前記複数のグループのうちの前記選択された1つとは異なる、請求項5に記載のメモリコントローラ。
  8. 前記制御回路は、
    前記スーパーブロックのうちのどれが古いデータを有するかを判定し、
    古いデータを有する前記スーパーブロックがいつ消去されるかを判定し、
    消去されたスーパーブロックを、特定の時点で、かつグループごとの方式で、各グループの中の使用可能な空いているスーパーブロックの前記数に追加するように構成される、請求項2から4のいずれか1項に記載のメモリコントローラ。
  9. 前記制御回路は、前記複数のグループの各々に対して、前記グループがいかなる空いているスーパーブロックをも含まなくなるまで、前記消去されたスーパーブロックが、前記グループの中の使用可能な空いているスーパーブロックの前記数に追加されることを防止するように構成される、請求項8に記載のメモリコントローラ。
  10. 前記制御回路は、前記複数のグループの各々に対して、前記グループがいかなる空いているスーパーブロックをも含まなくなるまで、古いデータを有する前記スーパーブロックが消去されることを防止するように構成される、請求項8に記載のメモリコントローラ。
  11. 前記制御回路は、前記以前に未割り当てのLBAに対応する全ての以降の書き込み動作に関連するデータが、前記それぞれ割り当てられたグループ内部の空いているスーパーブロックに書き込まれるように、前記書き込み動作以降に、前記複数のグループのうちの前記それぞれ選択された1つを、前記以前に未割り当てのLBAに割り当てるように構成される、請求項1から4のいずれか1項に記載のメモリコントローラ。
  12. メモリコントローラであって、
    それに関連するプレーンの複数のグループを有するいくつかのメモリデバイスに結合される制御回路であって、各グループは、
    少なくとも2つのプレーンの物理ブロックと、
    いくつかのスーパーブロックであって、前記スーパーブロックの各々とともに、前記グループの前記少なくとも2つのプレーンの各々から1つの物理ブロックを含む、物理ブロックのそれぞれの収集物を備える、スーパーブロックと、を含み、前記制御回路は、
    第1の書き込み動作に関連して第1の未割り当てのLBAを受信し、
    前記第1の未割り当てのLBAを、前記複数のグループのうちの選択された1つの内部の選択されたスーパーブロックに割り当て、
    前記第1の書き込み動作に対応するデータを、前記複数のグループのうちの前記選択された1つの内部の前記選択されたスーパーブロックに書き込むように構成される、制御回路を備える、メモリコントローラ。
  13. 前記制御回路は、前記第1の書き込み動作以降の第2の書き込み動作に関連して、
    前記第1の以前に未割り当てのLBAを受信し、
    前記第1の以前に未割り当てのLBAを、前記複数のグループのうちの選択された1つの内部の選択されたスーパーブロックに割り当て、
    前記第2の書き込み動作に対応するデータを、前記複数のグループのうちの前記選択された1つの内部の前記選択されたスーパーブロックに書き込むように構成される、請求項12に記載のメモリコントローラ。
  14. 前記第2の書き込み動作に関連して、前記第1の以前に未割り当てのLBAが割り当てられる、前記選択されたスーパーブロックは、前記第1の書き込み動作に関連して、前記第1の以前に未割り当てのLBAが割り当てられる、前記選択されたスーパーブロックとは異なる、請求項13に記載のメモリコントローラ。
  15. 前記複数のグループのうちの前記選択された1つは、前記第1および第2の書き込み動作に対して異なる、請求項13に記載のメモリコントローラ。
  16. 前記制御回路は、
    前記複数のグループの各々に対して、空いているスーパーブロックの現在の数を判定し、
    少なくとも部分的に、前記複数のグループの各々に対して判定された空いているスーパーブロックの前記現在の数に基づいて、前記第2の書き込み動作に対応する前記データを受信するために、前記複数グループのうちの前記選択された1つを選択するように構成される、請求項13に記載のメモリコントローラ。
  17. 前記制御回路は、前記第2の書き込み動作に関連して、ラウンドロビン方式で前記複数のグループのうちの前記選択された1つを選択するように構成される、請求項13に記載のメモリコントローラ。
  18. 前記制御回路は、
    第2の書き込み動作に関連して、第2の未割り当てのLBAを受信し、
    前記第2の以前に未割り当てのLBAを、前記複数のグループのうちの選択された1つの内部の選択されたスーパーブロックに割り当て、
    前記第2の書き込み動作に対応するデータを、前記選択されたスーパーブロックに書き込むように構成される、請求項12から17のいずれか1項に記載のメモリコントローラ。
  19. 前記制御回路は、
    前記複数のグループの各々に対して、空いているスーパーブロックの数を判定し、
    少なくとも部分的に、前記複数のグループの各々に対して判定された空いているスーパーブロックの前記数に基づいて、前記第2の書き込み動作に対応する前記データを受信するために、前記複数グループのうちの前記選択された1つを選択するように構成される、請求項18に記載のメモリコントローラ。
  20. メモリコントローラであって、
    それに関連するプレーンの複数のグループを有するいくつかのメモリデバイスに結合される制御回路であって、各グループは、少なくとも2つのメモリアレイからの1つのプレーンを含み、かつそれに関連するいくつかのスーパーブロックを有し、前記スーパーブロックの各々は、前記グループのうちのそれぞれ1つの前記少なくとも2つのメモリアレイの各々から1つの物理ブロックを含む物理ブロックのそれぞれの収集物を備える、制御回路を備え、
    前記制御回路は、
    第1の書き込み動作に関連して第1の未割り当ての論理ブロックアドレス(LBA)を受信し、
    前記第1の未割り当てのLBA含むLBAの範囲を、前記複数のグループのうちの選択される1つの内部の選択されるスーパーブロックに割り当て、
    前記第1の書き込み動作に対応するデータを、前記複数のグループのうちの前記選択された1つの内部の前記選択されたスーパーブロックに書き込み、
    第2の書き込み動作に関連して第2のLBAを受信し、
    前記第2のLBAが、前記選択されたスーパーブロックに割り当てられたLBAの前記範囲内にある場合、前記第2の書き込み動作に対応するデータを、前記同一の選択されたスーパーブロックに書き込むように構成される、制御回路を備える、メモリコントローラ。
  21. 前記制御回路は、第2のLBAが、前記選択されたスーパーブロックに割り当てられたLBAの前記範囲内にない場合、前記第2の未割り当てのLBAを、前記第1の書き込み動作に対応する前記データが書き込まれる前記選択されたスーパーブロックとは異なる選択されたスーパーブロックに割り当てるように構成される、請求項20に記載のメモリコントローラ。
  22. 前記異なる選択されたスーパーブロックは、前記複数グループのうちの異なる選択された1つに位置付けられる、請求項21に記載のメモリコントローラ。
  23. 前記制御回路は、
    前記複数のグループの各々に対する空いているスーパーブロックのカウントを維持し、
    少なくとも部分的に、空いているスーパーブロックの前記カウントに基づいて、前記複数のグループのうちの前記異なる選択された1つを選択するように構成される、請求項22に記載のメモリコントローラ。
  24. 前記制御回路は、前記第2の未割り当てのLBAを、最多数の空いているスーパーブロックを有する前記複数のグループのうちの前記異なる選択された1つの内部の前記異なる選択されたスーパーブロックに割り当てるように構成される、請求項23に記載のメモリコントローラ。
  25. メモリシステムにおけるブロック選択のための方法であって、
    第1の書き込み動作に関連して第1の論理ブロックアドレス(LBA)を受信することと、
    前記第1の書き込み動作に対応するデータを、プレーンの複数のグループのうちの選択されたグループ内部のいくつかのスーパーブロックのうちの選択された空いているスーパーブロックに書き込むことと、を含み、
    前記グループの各々は、少なくとも2つのプレーンの収集物で、前記スーパーブロックの各々とともに、前記少なくとも2つのプレーンの各々からの1つの物理ブロックのそれぞれの収集物であり、
    前記第1のLBAは、特定のスーパーブロックに予め割り当てられておらず、かつプレーンの前記複数のグループのうちの特定の1つに予め割り当てられていない、方法。
  26. 少なくとも部分的に、他のグループの各々の中の空いているスーパーブロックの数に比較して、前記それぞれ選択されたグループの中の空いているスーパーブロックの数に基づいて、前記第1の書き込み動作に関連する前記選択されたグループを選択することを含む、請求項25に記載の方法。
  27. 少なくとも部分的に、前記他のグループの各々の中の使用されているスーパーロックに対する空いているスーパーブロックの比率と比較した、前記それぞれ選択されたグループの中の使用されているスーパーブロックに対する空いているスーパーブロックの比率に基づいて、前記第1の書き込み動作に関連する前記選択されたグループを選択することを含む、請求項25に記載の方法。
  28. ラウンドロビン方式で、前記第1の書き込み動作に関連する前記選択されたグループを選択することを含む、請求項25に記載の方法。
  29. 以降の書き込み動作に関連する、第2のLBAを受信することと、
    前記以降の書き込み動作に対応するデータを、前記複数のグループのうちの選択された1つの内部の選択された空いているスーパーブロックに書き込むことと、を含み、
    前記第2のLBAは、特定のスーパーブロックに予め割り当てられておらず、かつ前記複数のグループのうちの特定の1つに予め割り当てられていない、請求項25から28のいずれか1項に記載の方法。
  30. 前記以降の書き込み動作に関連する前記複数のグループのうちの前記選択された1つを選択することは、前記第1の書き込み動作に関連する前記複数のグループのうちの前記選択された1つとは異なるグループを選択することを含む、請求項29に記載の方法。
  31. 前記第1の書き込み動作の後に、前記第1の書き込み動作に関連して書き込まれた前記空いているスーパーブロックを、前記それぞれ選択されたグループに関連する使用可能な空いているスーパーブロックのリストから削除することと、
    前記以降の書き込み動作の後に、前記第2の書き込み動作に関連して書き込まれた前記スーパーブロックを、前記それぞれ選択されたグループに関連する使用可能な空いているスーパーブロックのリストから削除することと、
    前記削除されたスーパーブロックのうちのそれぞれ1つが、前記グループのうちの前記それぞれ1つの前記スーパーブロックの各々が、少なくとも1回書き込まれてしまうまで、前記リストのうちのそれぞれ1つに返されることを防止することと、を含む、請求項29に記載の方法。
  32. 各グループに対して、
    前記グループの中の空いているスーパーブロックの数を追跡することと、
    スーパーブロックが書き込まれた以降に、空いているスーパーブロックのリストから、前記スーパーブロックを削除することと、
    前記スーパーブロックが消去された以降に、空いているスーパーブロックの前記リストに前記スーパーブロックを追加することと、を含む、請求項25から28のいずれか1項に記載の方法。
  33. 特定のスーパーブロック内部の前記物理ブロックの全てを実質的に同時に消去することによって、前記スーパーブロック上で消去動作を実行することを含む、請求項25から28のいずれか1項に記載の方法。
  34. 前記複数のグループの各々から少なくとも1つのスーパーブロックを実質的に同時に消去することによって、前記メモリシステム上で消去動作を実行することを含む、請求項33に記載の方法。
JP2011552932A 2009-03-04 2010-02-24 メモリブロックの選択 Active JP5458419B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/397,402 2009-03-04
US12/397,402 US8239614B2 (en) 2009-03-04 2009-03-04 Memory super block allocation
PCT/US2010/000539 WO2010101608A2 (en) 2009-03-04 2010-02-24 Memory block selection

Publications (2)

Publication Number Publication Date
JP2012519899A true JP2012519899A (ja) 2012-08-30
JP5458419B2 JP5458419B2 (ja) 2014-04-02

Family

ID=42679245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011552932A Active JP5458419B2 (ja) 2009-03-04 2010-02-24 メモリブロックの選択

Country Status (7)

Country Link
US (2) US8239614B2 (ja)
EP (1) EP2404239B1 (ja)
JP (1) JP5458419B2 (ja)
KR (1) KR101343237B1 (ja)
CN (1) CN102341793B (ja)
TW (1) TWI455139B (ja)
WO (1) WO2010101608A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015008338A1 (ja) * 2013-07-16 2015-01-22 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239614B2 (en) * 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
US8918588B2 (en) * 2009-04-07 2014-12-23 International Business Machines Corporation Maintaining a cache of blocks from a plurality of data streams
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US8612804B1 (en) * 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8495338B2 (en) * 2010-12-03 2013-07-23 Micron Technology, Inc. Transaction log recovery
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8762625B2 (en) * 2011-04-14 2014-06-24 Apple Inc. Stochastic block allocation for improved wear leveling
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9013922B2 (en) * 2012-09-20 2015-04-21 Silicon Motion, Inc. Data storage device and flash memory control method thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9465732B2 (en) 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US8966164B1 (en) * 2013-09-27 2015-02-24 Avalanche Technology, Inc. Storage processor managing NVME logically addressed solid state disk array
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
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
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9823863B1 (en) * 2014-06-30 2017-11-21 Sk Hynix Memory Solutions Inc. Sub-blocks and meta pages for mapping table rebuild
US20160124639A1 (en) * 2014-11-05 2016-05-05 SanDisk Technologies, Inc. Dynamic storage channel
US20160179401A1 (en) * 2014-12-17 2016-06-23 Sk Hynix Memory Solutions Inc. Memory system and the operation method thereof
US10102146B2 (en) * 2015-03-26 2018-10-16 SK Hynix Inc. Memory system and operating method for improving rebuild efficiency
CN105159843B (zh) * 2015-10-19 2018-07-31 深圳芯邦科技股份有限公司 一种基于超级块的多通道管理方法与系统
CN106940623B (zh) * 2016-01-04 2020-06-09 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器储存装置
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
KR102593352B1 (ko) 2016-05-04 2023-10-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10282111B2 (en) * 2016-07-29 2019-05-07 Western Digital Technologies, Inc. Adaptive wear levelling
KR20180039351A (ko) * 2016-10-10 2018-04-18 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR102645572B1 (ko) * 2016-11-29 2024-03-11 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
WO2018118569A1 (en) * 2016-12-21 2018-06-28 Cryptography Research, Inc. Protecting parallel multiplication operations from external monitoring attacks
EP3602266A4 (en) * 2017-03-21 2020-12-16 Micron Technology, INC. DEVICES AND METHODS FOR AUTOMATED DYNAMIC WORDLINE START VOLTAGE
KR20190031693A (ko) * 2017-09-18 2019-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10977182B2 (en) * 2017-12-01 2021-04-13 Micron Technology, Inc. Logical block mapping based on an offset
US10387243B2 (en) 2017-12-08 2019-08-20 Macronix International Co., Ltd. Managing data arrangement in a super block
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
US10372355B2 (en) * 2017-12-29 2019-08-06 Micron Technology, Inc. Managing partial superblocks in a NAND device
KR20190083148A (ko) * 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
KR102620727B1 (ko) * 2018-04-18 2024-01-03 에스케이하이닉스 주식회사 전자 장치
TWI687811B (zh) * 2018-05-14 2020-03-11 慧榮科技股份有限公司 資料儲存裝置及系統資訊的編程方法
US10740026B2 (en) 2018-05-18 2020-08-11 Micron Technology, Inc. Time indicator of super block operations
KR102611566B1 (ko) * 2018-07-06 2023-12-07 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법
US11086533B2 (en) * 2018-08-31 2021-08-10 Wipro Limited Method and system for optimizing storage space in a storage unit
US10949123B2 (en) 2018-10-18 2021-03-16 Western Digital Technologies, Inc. Using interleaved writes to separate die planes
KR20200044460A (ko) * 2018-10-19 2020-04-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN111651371B (zh) * 2019-03-04 2023-06-16 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
US11693773B2 (en) * 2019-03-15 2023-07-04 Kioxia Corporation Systems and methods for implementing a four-dimensional superblock
TWI769386B (zh) * 2019-07-04 2022-07-01 群聯電子股份有限公司 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
US11194516B2 (en) * 2019-10-08 2021-12-07 Micron Technology, Inc. Media type selection
US11461363B2 (en) * 2020-03-31 2022-10-04 Sap Se Memory allocation and deallocation mechanism to reduce fragmentation and enhance defragmentation performance
US11841794B2 (en) 2020-12-16 2023-12-12 Micron Technology, Inc. Memory sub-system write sequence track
KR20220131058A (ko) * 2021-03-19 2022-09-27 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
JP2022147448A (ja) * 2021-03-23 2022-10-06 キオクシア株式会社 メモリシステム及びデータ管理方法
JP2023001573A (ja) * 2021-06-21 2023-01-06 キオクシア株式会社 メモリシステムおよび制御方法
US11640254B2 (en) * 2021-08-25 2023-05-02 Western Digital Technologies, Inc. Controlled imbalance in super block allocation in ZNS SSD
KR20230048747A (ko) * 2021-10-05 2023-04-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN114328283B (zh) * 2021-12-29 2022-11-18 上海芯存天下电子科技有限公司 计数地址获取方法、计数方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006504201A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
JP2007094900A (ja) * 2005-09-29 2007-04-12 Eastman Kodak Co アクセス装置
JP2007517320A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法
JP2009503744A (ja) * 2005-08-03 2009-01-29 サンディスク コーポレイション 予定再生操作を伴う不揮発性メモリ
JP2010152913A (ja) * 1999-09-03 2010-07-08 Lexar Media Inc セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
WO1997017657A1 (fr) 1995-11-10 1997-05-15 Sony Corporation Appareil et procede de traitement d'informations
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
WO2000060605A1 (en) * 1999-04-01 2000-10-12 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
US6865122B2 (en) * 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
WO2007072317A2 (en) * 2005-12-21 2007-06-28 Nxp B.V. Non-volatile memory with block erasable locations
US7424587B2 (en) * 2006-05-23 2008-09-09 Dataram, Inc. Methods for managing data writes and reads to a hybrid solid-state disk drive
US20080052446A1 (en) * 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8775717B2 (en) * 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8239614B2 (en) * 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152913A (ja) * 1999-09-03 2010-07-08 Lexar Media Inc セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JP2006504201A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
JP2007517320A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
JP2009503744A (ja) * 2005-08-03 2009-01-29 サンディスク コーポレイション 予定再生操作を伴う不揮発性メモリ
JP2007094900A (ja) * 2005-09-29 2007-04-12 Eastman Kodak Co アクセス装置
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015008338A1 (ja) * 2013-07-16 2015-01-22 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
JP6028866B2 (ja) * 2013-07-16 2016-11-24 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法

Also Published As

Publication number Publication date
KR101343237B1 (ko) 2013-12-18
CN102341793A (zh) 2012-02-01
US20120303931A1 (en) 2012-11-29
EP2404239A4 (en) 2012-12-05
CN102341793B (zh) 2015-02-04
JP5458419B2 (ja) 2014-04-02
KR20110127728A (ko) 2011-11-25
EP2404239B1 (en) 2018-12-12
TW201040971A (en) 2010-11-16
US8751731B2 (en) 2014-06-10
US8239614B2 (en) 2012-08-07
TWI455139B (zh) 2014-10-01
EP2404239A2 (en) 2012-01-11
WO2010101608A2 (en) 2010-09-10
US20100228928A1 (en) 2010-09-09
WO2010101608A3 (en) 2010-11-25

Similar Documents

Publication Publication Date Title
JP5458419B2 (ja) メモリブロックの選択
US10452532B2 (en) Directed sanitization of memory
US8312245B2 (en) Memory block management
JP5728672B2 (ja) ハイブリッドメモリ管理
US11232041B2 (en) Memory addressing
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8316176B1 (en) Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8825941B2 (en) SLC-MLC combination flash storage device
US8606987B2 (en) Data writing method for flash memory and controller using the same
CN108121503B (zh) 一种NandFlash地址映射及块管理方法
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
US8046526B2 (en) Wear leveling method and controller using the same
US10802733B2 (en) Methods and apparatus for configuring storage tiers within SSDs
TWI432965B (zh) 具有複數個結構之記憶體系統及其操作方法
US20110161553A1 (en) Memory device wear-leveling techniques
US11334272B2 (en) Memory system and operating method thereof
CN114579475A (zh) 电子系统及其操作方法
US11113205B2 (en) Die addressing using a reduced size translation table entry
JP2022551627A (ja) 自己適応型ウェアレベリングの方法及びアルゴリズム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130813

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131226

R150 Certificate of patent or registration of utility model

Ref document number: 5458419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250