JP2013513881A - フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム - Google Patents

フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム Download PDF

Info

Publication number
JP2013513881A
JP2013513881A JP2012543970A JP2012543970A JP2013513881A JP 2013513881 A JP2013513881 A JP 2013513881A JP 2012543970 A JP2012543970 A JP 2012543970A JP 2012543970 A JP2012543970 A JP 2012543970A JP 2013513881 A JP2013513881 A JP 2013513881A
Authority
JP
Japan
Prior art keywords
chip
write
stripe
page
state
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
JP2012543970A
Other languages
English (en)
Other versions
JP5613260B2 (ja
Inventor
エレフテリオス、エバンゲロス、エス
ハース、ロバート
ミューラー、ピーター
プレッカ、ローマン、エー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013513881A publication Critical patent/JP2013513881A/ja
Application granted granted Critical
Publication of JP5613260B2 publication Critical patent/JP5613260B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 フラッシュ型メモリ・システム又はフラッシュ型メモリ・システムと同様の性質を示すその他のメモリ・システムにおけるアクセス競合を減らすための方法及びシステムを提供すること
【解決手段】 例示的な実施形態は、フラッシュ型メモリ・システムにおけるアクセス競合を減らすための方法を含み、この方法は、複数のチャネルと複数のメモリ・ブロックとを有するメモリ・デバイスから、空き状態のチップ・ストライプを選択することであって、チップ・ストライプが複数のページを含むことと、チップ・ストライプを書き込み状態に設定することと、書き込みキュー・ヘッドを複数のチャネルの各々において設定することと、チップ・ストライプ内の複数のチャネルの各々について、書き込みキュー・ヘッドを、チップ・ストライプ由来のチャネルに属するチップ内の第1の空きページに対して設定することと、書き込み要求を、書き込み割り当てスケジューラに従って、チャネル間で割り当てることと、ページ書き込みを生成することと、ページ書き込みに応答して、書き込みキュー・ヘッドをインクリメントすることと、チップ・ストライプが満杯になったときに、チップ・ストライプをオンライン状態に設定することと、を含む。
【選択図】 図3

Description

本発明は、フラッシュ型メモリ・システムに関し、より具体的には、フラッシュ型メモリ・システム又はフラッシュ型メモリ・システムと同様の性質を示すその他のメモリ・システムにおけるアクセス競合を減らすための方法及びシステムに関する。
フラッシュ・メモリは、電気的に消去及び再プログラムが可能な不揮発性コンピュータ・ストレージである。ソリッド・ステート・ドライブ(SSD)のようなフラッシュ型ストレージ・デバイスは、読み出し及び書き込みが、典型的には、一般に2KBから4KBサイズのページ・サイズのチャンクで行われるというハードウェア特性を有する。消去は、典型的には、1ブロックが一般に64ページから128ページを含むブロック全体で行われる。フラッシュ・メモリは、NOR型及びNAND型の両方を含む。一般に、2つの異なる型式のNANDフラッシュ・チップが存在し、シングル・レベル・セル(SLC)に基づくタイプは1ビットを記憶し、マルチ・レベル・セルに基づくタイプは、1より大きいビットを記憶するために複数の電圧レベルを維持する。4KBのページは、SLCベースのフラッシュ・チップにおいて、典型的な読み出し時間25μs及び書き込み時間600μsを有する。ブロック全体の消去は、それよりもかなり長い時間がかかり、企業グレード(enterprise−grade)のフラッシュ・チップにおいては、7msを要し得る。これらの読み出し/書き込み/消去特性は、作業負荷にかかわらず有効である。対照的に、ハードディスク・ドライブ(HDD)型のストレージ・システムにおいては、シーク・タイムがランダム・アクセス性能を制限する。しかしながら、フラッシュ型ストレージ・デバイスにおいては、セルにプログラムする(例えば、書き込みする)ことが可能になる前に、まずセルの消去を行わなければならない。従って、ブロック消去の待ち時間を隠蔽するために用いられる通常技術は、常にデータを所定の位置以外の位置(out−of−place)に書き込むこと、及び、ブロックの消去をガーベジ・コレクションが開始されるまで遅らせることである。消去コマンドが発行されると、チップはその動作が完了するまでビジー状態になり、この時間中はこのチップ上で読み出し又は書き込みを行うすべはなく、これは、「ブロッキング消去(blocking erase)」と呼ばれる。所定の位置以外の位置へと書き込む戦略は、フラッシュ・メモリ内の論理ブロック・アドレス(LBA)と実際の物理ページ/ブロック・アドレス(PBA)との間のマッピングを維持する、フラッシュ変換層(FTL)と呼ばれる特別な層を必要とする。
フラッシュ型ストレージ・デバイスへのアクセス時間は、それでもなお遅延の変動を呈し得る。図1は、シミュレートされた従来技術のシステムについて、待ち時間に対する確率密度関数のプロット100を示す。図2は、シミュレートされた従来技術のシステムについて、待ち時間に対する累積分布関数のプロット200を示す。図1及び図2は、高負荷のシナリオにおけるフラッシュ・シミュレータを例証する。この例において、ブロックが消去されているときには、同じチップに対するその後の読み出し要求は、対処されるまでに最大で7ms待たなければならないことがある。同様に、読み出し要求は、進行中の書き込み要求により、最大で600μs遅延されることがある。このような著しい遅延は、特定の環境においては許容できない。さらに、特定の国(例えば、日本)は、ある一定のIT用途に対して、最大遅延限界(〜5−19ms)を課すことさえある。それゆえ、潜在的な遅延の合計は、要求される遅延限界を越えることがある。そのうえ、従来のDRAMメモリ技術は、フラッシュと同じ制約がないので、もっとずっと均質なアクセス遅延を提供する。フラッシュ・キャッシュ・ソリューションは、NVRAMと呼ばれる高価なバッテリ・バックアップ式DRAMメモリをフラッシュで置き換えようとしている。それゆえ、そのようなフラッシュ・キャッシュの特性は、それらのメモリ技術の特性と同様のものである。従って、フラッシュ型メモリ技術でそのような特性を提供することは、有益であって、些細なことではない。
本発明の目的は、フラッシュ型メモリ・システム又はフラッシュ型メモリ・システムと同様の性質を示すその他のメモリ・システムにおけるアクセス競合を減らすための方法及びシステムを提供することにある。
例示的な実施形態は、フラッシュ型メモリ・システム又はフラッシュ型メモリ・システムと同様の特性を示すメモリ・システムにおけるアクセス競合を減らすための方法を含み、この方法は、複数のチャネルと複数のメモリ・ブロックとを有するメモリ・デバイスから、空き状態のチップ・ストライプを選択することであって、チップ・ストライプが複数のページを含むことと、チップ・ストライプを書き込み状態に設定することと、書き込みキュー・ヘッドを複数のチャネルの各々において設定することと、チップ・ストライプ内の複数のチャネルの各々について、書き込みキュー・ヘッドを、チップ・ストライプ由来のチャネルに属するチップ内の第1の空きページに対して設定することと、書き込み要求を、書き込み割り当てスケジューラに従って、チャネル間で割り当てることと、ページ書き込みを生成することと、ページ書き込みに応答して、書き込みキュー・ヘッドをインクリメントすることと、を含む。
さらなる例示的な実施形態は、フラッシュ型メモリ・システムにおけるアクセス競合を減らすためのコンピュータ・プログラムを含み、このコンピュータ・プログラムは、コンピュータに方法を実施させる命令を含み、この方法は、複数のチャネルと複数のメモリ・ブロックとを有するメモリ・デバイスから、空き状態のチップ・ストライプを選択することであって、チップ・ストライプが複数のブロックを含み、ブロックが複数のページを含むことと、チップ・ストライプを書き込み状態に設定することと、書き込みキュー・ヘッドを複数のチャネルの各々において設定することと、チップ・ストライプ内の複数のチャネルの各々について、書き込みキュー・ヘッドを、チップ・ストライプ由来のチャネルに属するチップ内の第1の空きページに対して設定することと、書き込み要求を、書き込み割り当てスケジューラに従って、チャネル間で割り当てることと、ページ書き込みを生成することと、ページ書き込みに応答して、書き込みキュー・ヘッドをインクリメントすることと、を含む。
さらに別の例示的な実施形態は、書き込み割り当てスケジューラを有する複数のチャネルと、複数のチャネルの各々に通信可能に結合された少なくとも1つのチップ・ストライプとを含むメモリ・デバイスを含み、少なくとも1つのチップ・ストライプは、空き状態と、書き込み状態と、オンライン状態と、消去状態とを有し、少なくとも1つのチップ・ストライプは、書き込み要求を割り当てるために空き状態から書き込み状態に設定されるように構成され、かつ、読み出し要求に対処するために書き込み状態からオンライン状態に設定されるようにさらに構成される。
さらなる特徴及び利点は、本発明の技術を通じて理解される。本発明のその他の実施形態及び態様は、本明細書において詳細が説明され、特許請求される発明の一部と見なされる。本発明を利点及び特徴と共により良く理解するために、説明及び図面を参照されたい。
本発明とみなされる主題は、本明細書の結論部分の特許請求の範囲において具体的に指示され、明確に特許請求される。本発明の前述及びその他の特徴及び利点は、添付の図面と併せて解釈される以下の詳細な説明から明らかである。
シミュレートされた従来のシステムの待ち時間に対する確率密度関数のプロットを示す。 シミュレートされた従来のシステムの待ち時間に対する累積分布関数のプロットを示す。 例示的なアクセス競合低減方法を実装することができる例示的なフラッシュ・アーキテクチャを示す。 ここで説明される例示的な4つの状態及びそれぞれの遷移を示す、例示的な状態図を示す。 例示的な実施形態による、フラッシュ型メモリ・システムにおけるアクセス競合を減らすための方法のフローチャートを示す。 例示的なガーベジ・コレクション方法のフローチャートを示す。 図6のさらなる詳細を示す、例示的なガーベジ・コレクション方法のフローチャートを示す。
例示的な実施形態において、ここで説明されるシステム及び方法は、フラッシュ型メモリ・システムの消去及び書き込みの遅延により引き起こされるアクセス競合を低減/回避するものである。ここで説明される例示的な実施形態は、フラッシュ型メモリ・システムを説明のための例として論じる。他の例示的な実施形態において、ここで説明される方法は、アクセス時間並びに書き込み又は消去動作のブロッキングに関してフラッシュ型メモリ・システムと同様の特性を呈する、任意のメモリ・システムに適用することができることが理解される。例示的な実施形態において、フラッシュ型ストレージ・デバイスのアーキテクチャは、読み出し及び書き込み要求に対して厳しい遅延限界を与えることが可能である。さらに、このアーキテクチャは、特にフラッシュ・キャッシュ・ソリューションに対して、効率的なガーベジ・コレクション及びウェア・レベリングを提供する。例示的な実施形態において、ここで説明されるシステム及び方法は、読み出し、書き込み、及び消去動作を切り離すことにより、同じチップ上の先行する動作に由来する付加的な遅延を完全に隠蔽する。チップ上での読み出し及び書き込みを、同じチップ上の先行する消去動作により引き起こされる付加的な遅延から保護するために、読み出し及び書き込み動作は、消去が行われておらず、その一方でなお、格納されている全ての情報へのアクセスを提供しているチップ上でのみ行われる(即ち、デバイスの全LBA空間)。同様に、ここで説明される方法は、読み出し動作が、同じチップ上での先行する要求の消去及び書き込み遅延によって不利にならないよう保護するために、実装することができる。例示的な実施形態において、読み出し動作は、フラッシュ・チップがチャネル・バスに取り付けられ、チャネル間でチップ・ストライプにグループ分けされるアーキテクチャを実装して、不利にならないように保護される。このアーキテクチャは、書き込みページ・アロケータ及びガーベジ・コレクション・アルゴリズムを備えたチャネル毎の空きブロック・キューに基づく書き込み戦略と組み合わされる。
フラッシュ・キャッシュ又はSSDのようなフラッシュ型ストレージ・デバイスは、フラッシュ・チップを取り付けるための多数のチャネルを含む。各チャネルは、チップに対する全ての要求を管理する低複雑度のチャネル・コントローラを有する。チャネルは、チップ上での読み出し、書き込み、及び消去動作、並びに、場合によってはエラー修正情報の追加又は検証といったその他の動作を実行する、専用のチャネル・コントローラにより制御される。チャネル・コントローラは、LBA−PBAマッピング、ガーベジ・コレクション、空きブロック及び不良ブロック管理といった主タスクを実行する、主コントローラにより制御される。図3は、例示的なアクセス競合低減方法を実装することができる例示的なフラッシュ・アーキテクチャ300を示す。ここで説明されるように、アーキテクチャ300は、複数の複雑度がより低いチャネル・コントローラ310、315、320、325のための主コントローラ305を含む。例示的な実施形態において、主コントローラ305は、各チャネルに対して、1つの空きブロック・キュー及び書き込みキュー・ヘッドを維持する。空きブロック・キューは、書き込みに用いることができる全てのブロックを保持する。書き込みキュー・ヘッドは、データが現在書き込まれているブロック内の最初の空きページを指示する。空きブロックは、ここでさらに説明されるように、チャネルの空きブロック・キューから前もって取得されたものである。例示的な実施形態において、各チャネル・コントローラ310、315、320、325は、それぞれのチップのチャネルを含む。図示されているように、一例として、コントローラ310はチャネル1を制御し、コントローラ315はチャネル2を制御し、コントローラ320はチャネルC−1を制御し、コントローラ325はチャネルCを制御する。さらに、各チャネル・コントローラ310、315、320、325は、チャネル・バス311、316、321、326によってそれぞれのチャネルに通信可能に結合される。各チャネルはまた、一般に「チップ」として示されるチップを含む。例示的な実施形態において、書き込みモードのストライプ(例えば、チップ・ストライプn)は、書き込みヘッド・チップを含むことができる。さらに、GCストライプ(例えば、チップ・ストライプn+2)は、ガーベジ・コレクタ・ヘッド・チップを含むことができる。
チャネル構造のほかに、チップは、チップ・ストライプ1、チップ・ストライプ2、チップ・ストライプn、チップ・ストライプn+1、チップ・ストライプn+2、チップ・ストライプN−1、チップ・ストライプNとして図示される、いわゆるチップ・ストライプに仮想的にグループ分けされる。従って、各チャネル内の第1のチップは、第1のチップ・ストライプに属し、以下同様である。例示的な実施形態において、チップ・ストライプは4つの状態、即ちオンライン状態、ガーベジ・コレクション(GC)状態、空き状態、又は書き込み状態のうちの1つにある。図4は、ここで説明される例示的な4つの状態及びそれぞれの遷移を示す、例示的な状態図400を示す。図3に示される例において、チップ・ストライプ1、チップ・ストライプ2、チップ・ストライプN−1、及びチップ・ストライプNは、読み出し要求を満たす「オンライン」であり、チップ・ストライプnは、書き込みモード・ストライプであり、チップ・ストライプn+1は、空きであり、チップ・ストライプn+2は、GC状態である。これらの状態は、例証的なものであり、他の例示的な実施形態においては他の状態が想定される。
例示的な実施形態において、あるチップ・ストライプがオンライン状態である場合、その全てのチップからデータを読み出すことができる。空き状態のチップ・ストライプは、全てのブロックが新たに消去されて書き込みの準備ができたチップを保持する。書き込み状態のチップ・ストライプは、データを現在書き込み中のチップからなる。好ましい実施形態において、いかなる時点でも、書き込み状態のチップ・ストライプは1つしか存在しない。しかしながら、ここでさらに説明されるように、特定の状況においては、1つより多くの書き込み状態のチップ・ストライプを有することも理に適っている。
例示的な実施形態において、ガーベジ・コレクション状態(GC状態)のチップ・ストライプは、書き込み準備のために、現在クリーンアップされているチップを含む。GC状態のチップ・ストライプはせいぜい1つであることが好ましい。従って、GCは、いかなる時点でも、各チャネル内の単一のチップにおいて行うことができる。さらに、1つより多くのGC状態のチップ・ストライプが存在することも可能であり、これは、GCが加速されている場合に望ましい。GC状態のチップ・ストライプの数は、動的であってもよい(すなわち、作業負荷に適応する)。GC状態ではかなりの量の記憶空間が確保され、それゆえ、GCの間は実データを格納するために用いることができない。例示的な実施形態において、GC状態は、「クリーニング」及び「消去」状態のような下位状態を有することができる。クリーニング状態は、有効ページが書き込みストライプ内の新たな位置に移動している途中の状態を示し、消去状態は、全ての有効ページが新たな位置に移動された後で、ブロックが実際に消去されている状態を示す。クリーニング状態においては、ユーザの読み出し要求に対して、まだそのチップ・ストライプから対処することができる。ひとたびチップ・ストライプが消去状態へと変更されると、そのチップ・ストライプ上の全てのデータは既に外に移動されており、新たな位置から対処しなければならない。消去状態のストライプからユーザの読み出し要求に対処することは避けることが望ましい。従って、読み出し要求に対して、新たな位置から対処することができる。例示的な実施形態において、消去は、単一のチップ上では中断されても、ストライプ全体では継続することができる。
図5は、例示的な実施形態による、フラッシュ型メモリ・システムにおけるアクセス競合を減らすための方法500のフローチャートを示す。例示的な実施形態において、方法500が開始したとき、全てのブロックは空きであり、それゆえブロック505において全てのチップ・ストライプは空き状態である。ブロック510において、データをデバイスに書き込むことができるようになる前に、空きチップ・ストライプが選択され、書き込みモードに設定される。例えば、ブロック510において、フラッシュ・チップ上の第1の空きチップ・ストライプを選択することができるが、その他のいずれかの空きチップ・ストライプを選択することもできる。ブロック515において、各チャネルに対して、対応する空きブロック・キューから空きブロックが選択される。例示的な実施形態において、各チャネルの所与のチップ・ストライプ内の第1の空きブロックが選択されるが、所与のチップ・ストライプ及びチャネル内のその他のいずれかの空きブロックを選択することもできる。ブロック520において、各チャネルに対して、書き込みキュー・ヘッドが、書き込みモードのチップ・ストライプ由来のそのチャネルに属するチップ内の第1の空きページに設定される。ブロック525において、方法500は、デバイスが停止したかどうかチェックする。停止した場合、方法500は終了する。デバイスが依然として稼働している場合には、ブロック530において、書き込み要求が、書き込み割り当てスケジューラに従って、チャネル間で割り当てられる。例示的な実施形態において、書き込み作業負荷を全ての使用可能なチャネル間で均等に分配するラウンドロビン・スケジューラを実装することができる。所望の性質に応じて、他の例示的な実施形態においては、その他のスケジューラを企図することもできる。ブロック535において、ひとたびページが書き込まれると、ブロック内の次の空きページに書き込みキュー・ヘッドを設定するために、書き込みキュー・ヘッドがインクリメントされる。ブロック540において、方法500は、チップ・ストライプが満杯であるか否かをチェックする。チップ・ストライプが満杯である場合には、ブロック545は、予め構成された値に従って、十分な空きストライプが使用可能か否か判断する。ブロック545において、チップ・ストライプが十分に残っている場合には、方法は、ブロック555に続く。ブロック545において、チップ・ストライプが十分に残っていない場合には、以前に書き込まれたブロック内の無効化されたページから空間を回収するために、ブロック550において、ガーベジ・コレクション方法600(本明細書の図6を参照)がトリガされ、方法500はブロック555に続く。好ましい実施形態において、ガーベジ・コレクション方法600は、独立して、方法500と並行して実行されることに留意されたい。ブロック555において、現在のストライプは満杯であり、オンライン状態に設定されることが既知となる。方法500は次に、ブロック510において、次に上位の空きチップ・ストライプを選択する。他の実施形態において、次の書き込みチップ・ストライプの選択は、何らかのポリシーに従って行うことができる。チップ・ストライプがまだ満杯ではない場合には、ブロック560は、現在のブロックが満杯であるか否かをチェックする。ブロックがまだ満杯ではない場合、方法500は、ブロック525に続く。ブロックが満杯である場合、ブロック565において、事前定義された値に従うと十分な空きブロックがない場合には、ブロック570においてガーベジ・コレクションがトリガされ、ブロック575において、次の空きブロックが、このチャネルに関連付けられた空きブロック・キューから取得される。例示的な実施形態において、空きブロック・キューは、空きブロック・キュー内のブロックを、チップ内でのそれらのアドレスと同じ順番で保持する(その一方で、全ての不良ブロックは除外する)ことにより、維持することができる。
例示的な実施形態において、GCは、最後の空きチップ・ストライプが書き込み状態に変更されたときにトリガすることもでき、又は、システム内で使用可能であるべき空きチップ・ストライプの数である、構成可能な閾値に基づいて(即ち、空きブロックの総数に基づいて)、より早期にトリガすることもできる。例示的な実施形態において、閾値が大きいほど、取りのけて確保されているメモリ空間も大きくなり、それゆえ、読み出し及び書き込みに使用可能な全容量が減少することになる。閾値は、書き込みバーストに首尾良く適応するために、ゼロより大きく設定することができる。同様に、GCは、十分な空きページが使用可能である場合には停止することができる。例示的な実施形態において、方法500は、必要に応じて再開することができる。
図6は、例示的なガーベジ・コレクション方法600のフローチャートを示す。方法600は、方法500によりブロック550及び570においてトリガされる(上記図5を参照)。最初に、GCが既に実行されているか否かをチェックする。GCが既に実行されている場合には、既に実行されているGC方法600が十分な空間を解放するので、方法600の別のインスタンスを開始する必要はない。GCが実行されていない場合は、ガーベジ・コレクションは、ブロック610で開始し、ブロック615で中止される。詳細なGC方法は、方法700で説明される(本明細書の図7を参照)。ブロック620において、方法700の終了後、方法600は、十分な空きブロック及びチップ・ストライプが使用可能であるか否かをチェックする。方法600はもう1回のGCラウンドをトリガし、そうでない場合、方法600は中止される。
図7は、例示的なガーベジ・コレクション方法700のフローチャートを詳細に示す。例示的な実施形態において、GC方法700は、開始時に最も古いチップ・ストライプを選択する。ブロック705において、方法700は、選択されたチップ・ストライプをクリーニング状態に設定する。方法700は次に、選択されたチップ・ストライプ内の全てのページに対して、一連のブロックを実行する。ブロック710において、方法700は、ページ・メタデータ及びLBA−PBAマッピング情報を読み出す。ブロック715において、方法700は、そのページがいまだ有効であるかどうか判断する。ページ・メタデータ及びLBA−PBAマッピング情報が、そのページがいまだ有効であることを示した場合、そのページは新たな場所に書き込まれる。従って、ブロック715においてページがいまだ有効である場合には、次にブロック720において、方法700は全ページデータを読み出す。ブロック725において、方法700は、書き込み割り当てスケジューラから、そのページのためのターゲット位置を取得する。例示的な実施形態において、書き込み割り当てスケジューラは、新たな位置を、同じチャネル内又は別のチャネル内で割り当てることができる。さらに、チャネル・コントローラが1つのチャネル内でデータを直接移動することが可能な場合には、チャネル・コントローラがデータの移動をするほうが、他のバス由来のリソースを消費しないので好ましい。ブロック730において、方法700は、ページを新たな位置に書き込む。ブロック715においてページがもはや有効ではない場合には、無効なページは移動されず、従って後で消去されるので、何のアクションも取られず、無効なページが占める空間は方法700において後で自動的に回収される。ブロック735において、この方法は、残っているページがあるかどうか判断する。ブロック735において残っているページがある場合には、方法700は、710に続く。ブロック735において残っているページがない場合には、次にブロック740において、方法700は、そのチップ・ストライプを消去状態に設定する。ブロック745において、方法700は、チップ・ストライプ内の全てのブロックを消去する。例示的な実施形態において、チャネル・コントローラは、ブロックの消去動作を並列に実行することができる。さらに、各チャネル・コントローラは、ブロックが消去されている間にそれぞれのチャネルがブロックされないように、チップ上のブロック消去をバックグラウンドで実行することができる。ブロック750において、方法700は、そのチップ・ストライプの状態を空き状態に変更する。ブロック755において、方法700は、どのチップ・ストライプに対してGCを次回実行するか判断する。
例示的な実施形態において、チップ・ストライプは、所与のチャネル上のチップの数に応じて下位ストライプに分割することができる。さらに、ストライプのサイズ(即ち、同じチップ・ストライプに属する同じチャネル内のチップの数)は、チャネル帯域幅をもたらすように選択される。帯域幅管理は、チャネル・コントローラが、複数のチップ上での読み出し及び書き込み動作のパイプライン制御をサポートする場合に特に望ましい。それゆえ、同じチャネル上の1つより多いチップを同じ書き込みストライプに関連付けることができる。さらに、各チップ・ストライプ状態に対して、異なるストライプ・サイズをサポートすることができる。
例示的な実施形態において、ユーザの読み出し要求を、同じチップ上で進行中の消去及び書き込み動作により引き起こされる遅延から保護することができる。書き込みチップ・ストライプに書き込まれているユーザ・データは、チップ・ストライプ全体が書き込まれるまで、主コントローラの書き込みキャッシュ内に保持される。それで、この新たに書き込まれたデータに対するユーザの読み出し要求に対しては、書き込みキャッシュから対処されるので、先行する書き込みによる潜在的な遅延が排除される。しかしながら、主コントローラは、これらの動作を行うために、チップ・ストライプ全体を保持すること可能な巨大な書き込みキャッシュを必要とすることがある。例示的な実施形態において、巨大な書き込みキャッシュを免れるために、2つの交互書き込みストライプを実装することができる。書き込みキャッシュがフラッシュにデステージされると、データはまず第1の書き込みストライプに書き込まれ、次にこの書き込みストライプは、そこからアクセス可能なオンライン状態に一時的に切り換えられる。LBA−PBAマップにおける更新は、専用のマッピング・ブロック内で維持される。同じデータが次に、第2の書き込みストライプに書き込まれ、その変更を含む第2のLBA−PBAマッピング・ブロックが生成される。書き込み完了後、第2の書き込みストライプはオンライン状態に切り換えられる(対応するLBA−PBAマッピング・ブロックはアクティブに設定される)。第1のチップ・ストライプは、書き込み状態に戻るように切り換えられ、データは書き込みキャッシュからデステージすることができ、以下同様である。ひとたび書き込みチップ・ストライプが満杯になると、それらのうちの一方がオンライン状態に保持され、LBA−PBAマッピング表も同様である。もう一方のチップ・ストライプは、消去されて空き状態に設定されてもよく、又は冗長性若しくは並行読み取りのために用いられてもよい(RAID 1と同じ趣旨)。このタイプの動作は、フラッシュ書き込みの総数を2倍にする。
幾つかの構成においては、単一のチャネル上に少数のチップしかないことがある。この場合、GCのためにチップ・ストライプ全体を維持することは、確保される記憶容量がユーザ・データを保持するためには用いることができないという点で、高価になる。このような構成においては、複数のチャネルをチャネル・グループにグループ分けし、チップ・ストライプを下位ストライプに分割することが有益である。それゆえ、1つの下位ストライプは、単一のチャネル・グループ由来のチップのみを含む。この場合、ここで説明された同じアルゴリズムを、チップ・ストライプ全体の代わりに下位ストライプに適用することができる。この手法は、並行して消去することができるチップが少なくなるため、消去速度を低下させる。しかしながら、書き込み作業負荷が高くない場合には、この手法を実装することができる。従って、下位ストライプのサイズは、観察された書き込み作業負荷に応じて動的に調整することができる。
例示的な実施形態において、ここで説明されるチャネルは、物理チャネル又は仮想チャネルのどちらであってもよい。幾つかの物理チャネルをグループ化して1つの仮想チャネルにすることができる。それゆえ、ここに説明されるシステム及び方法は、物理チャネル及び仮想チャネルの両方に適用される。
例示的な実施形態において、GC状態、空き状態、オンライン状態、及び書き込み状態は、全てのチップ・ストライプを通って逐次的に移動し、これを循環バッファと呼ぶことができる。循環バッファ・アーキテクチャは、ブロックの消耗(ウェア)をチップ粒度に対して均等に配分するという利点を有しており、それゆえ付加的なウェア・レベリング方法を必要としないのでスキームの複雑度が低減される。ここに説明される例においては、書き込まれるページを割り当てるためのラウンドロビン戦略は、循環バッファにおいて実施することができるソリューションである。それでもやはり、不良ブロックのせいで、書き込みキュー・ヘッドが、異なるチャネル間で同期しなくなることがある。そのような場合には、先頭の書き込みキュー・ヘッドのヘッドより後ろにあるページのみがキュー内で割り当てられる臨時のラウンドを、ラウンドロビン・スケジューラに挿入することができる。
例示的な実施形態において、静的データと動的データとに分離することができる作業負荷の場合、循環バッファ・アーキテクチャは、GC中にデータを不必要に動き回らせることがある。従って、実装することができるポリシーの別の例は、ウィンドウ・ベースの貪欲な(greedy)回収ポリシーである。ここで説明された方法は、GCによって維持される情報に基づいて、チップをチップ・ストライプに動的にグループ分けすること、並びにチップ・ストライプのサイズを動的に適応させることにより、このようなウィンドウ・ベースの貪欲な回収ポリシーに適するように適合させることができる。
技術的効果は、読み出し、書き込み、及び消去動作を切り離すことにより、同じチップ上の先行する動作に由来する付加的な遅延を完全に隠蔽ことを含む。さらに、あるチップ上での読み出し及び書き込み動作は、同じチップ上での先行する消去動作により引き起こされる付加的な遅延から保護される。技術的効果はさらに、読み出し及び書き込み動作が、消去が行われておらず、その一方でなお、格納されている全ての情報へのアクセスを提供しているチップ上でのみ行われることを保証することを含む。さらに、読み出し動作は、同じチップ上での先行する要求の消去及び書き込み遅延によって不利にならないよう保護される。
ここで用いられる用語は、特定の実施形態を説明するためのものであり、本発明を限定することを意図するものではない。ここで用いられる場合、単数形の不定冠詞及び定冠詞は、文脈から明らかにそうではないことが示されていない限り、複数形も含むことが意図される。「含む」及び/又は「含んでいる」という用語は、本明細書において用いられる場合、言及した特徴、整数、ステップ、動作、要素、及び/又は成分の存在を指定するが、1つ又は複数のその他の特徴、整数、ステップ、動作、要素、成分、及び/又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
以下の特許請求の範囲内の全ての「手段又はステップと機能との組合せ(ミーンズ又はステップ・プラス・ファンクション)」要素の対応する構造、材料、動作及び均等物は、明確に特許請求されている他の特許請求された要素と組み合わせてその機能を実行するための、いかなる構造、材料又は動作をも含むことが意図される。本発明の説明は、例証及び説明の目的で提示されたものであるが、網羅的であることを意図するものでもなく、開示された形態の発明に限定することを意図するものでもない。本発明の範囲及び思想から逸脱することのない多くの修正及び変形が、当業者には明らかであろう。実施形態は、本発明の原理及び実際の適用を最も良く説明するように、及び、当業者が、企図される特定の使用に適するように種々の修正を伴う種々の実施形態について本発明を理解することを可能にするように、選択され、説明された。
本明細書で示されるフロー図は、単に1つの例である。本発明の思想から逸脱することなく、この図及びその中に記載されたステップ(又は動作)に対して多くの変形が存在し得る。例えば、ステップを異なる順序で実行することもでき、又はステップを追加し、削除し又は修正することもできる。これらの変形の全ては、特許請求される発明の一部と見なされる。
本発明の好適な実施形態を説明してきたが、現在及び将来の両方において、当業者が、以下の特許請求の範囲内に入る種々の改善及び強化を行うことができることが理解されよう。これらの特許請求の範囲は、最初に記載される発明の適正な保護を維持するよう解釈されるべきである。
100:待ち時間に対する確率密度関数のプロット
200:待ち時間に対する累積分布関数のプロット
300:フラッシュ・アーキテクチャ
305:主コントローラ
310、315、320、325:チャネル・コントローラ
311、316、321、326:チャネル・バス
500:フラッシュ型メモリ・システムにおけるアクセス競合を減らすための方法
600:ガーベジ・コレクション方法
700:詳細なガーベジ・コレクション方法

Claims (20)

  1. メモリ・チップにおけるアクセス競合を減らすための方法であって、
    複数のチャネルと複数のメモリ・ブロックとを有するメモリ・デバイスから、空き状態のチップ・ストライプを選択することであって、前記チップ・ストライプが複数のページを含むことと、
    前記チップ・ストライプを書き込み状態に設定することと、
    書き込みキュー・ヘッドを前記複数のチャネルの各々において設定することと、
    前記チップ・ストライプ内の前記複数のチャネルの各々について、
    書き込みキュー・ヘッドを、前記チップ・ストライプ由来の前記チャネルに属するチップ内の第1の空きページに対して設定することと、
    書き込み要求を、書き込み割り当てスケジューラに従って、チャネル間で割り当てることと、
    ページ書き込みを生成することと、
    前記ページ書き込みに応答して、前記書き込みキュー・ヘッドをインクリメントすることと、
    前記チップ・ストライプが満杯になったときに、前記チップ・ストライプをオンライン状態に設定することと、
    を含む方法。
  2. ガーベジ・コレクションをトリガすることをさらに含む、請求項1に記載の方法。
  3. 前記複数のメモリ・ブロックが、前記メモリ・チップ上の前記複数のメモリ・ブロックのそれぞれのアドレスと同じ順番で、前記メモリ・チップ上の空きブロック・キュー内で保持される、請求項1に記載の方法。
  4. 前記ガーベジ・コレクションが、最後の空きチップ・ストライプである前記チップ・ストライプが前記書き込み状態に変更されたことに応答してトリガされる、請求項2に記載の方法。
  5. 前記ガーベジ・コレクションが、前記メモリ・チップ上の空き状態のチップ・ストライプの所定の閾値に到達したことに応答してトリガされる、請求項2に記載の方法。
  6. 前記ガーベジ・コレクションが、前記メモリ・ブロックが満杯になったことに応答してトリガされる、請求項2に記載の方法。
  7. 前記ガーベジ・コレクションが、
    前記チップ・ストライプをクリーニング状態に設定することと、
    前記複数のページの各ページについて、
    ページ・メタデータ及びLBA−PBAマッピング情報を読み出すことと、
    前記ページが有効であることに応答して、
    前記全ページデータを読み出すことと、
    前記ページのためのターゲット位置を取得することと、
    前記ページデータを新たな位置に書き込むことと、
    前記チップ・ストライプを消去状態に設定することと、
    前記チップ・ストライプ内の全てのブロックを消去することと、
    前記チップ・ストライプを空き状態に設定することと、
    を含む、請求項2に記載の方法。
  8. メモリ・チップにおけるアクセス競合を減らすためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータに方法を実施させる命令を含み、前記方法が、
    複数のチャネルと複数のメモリ・ブロックとを有するメモリ・デバイスから、空き状態のチップ・ストライプを選択することであって、前記チップ・ストライプが複数のページを含むことと、
    前記チップ・ストライプを書き込み状態に設定することと、
    書き込みキュー・ヘッドを前記複数のチャネルの各々において設定することと、
    前記チップ・ストライプ内の前記複数のチャネルの各々について、
    書き込みキュー・ヘッドを、前記チップ・ストライプ由来の前記チャネルに属するチップ内の第1の空きページに対して設定することと、
    書き込み要求を、書き込み割り当てスケジューラに従って、チャネル間で割り当てることと、
    ページ書き込みを生成することと、
    前記ページ書き込みに応答して、前記書き込みキュー・ヘッドをインクリメントすることと、
    前記チップ・ストライプが満杯になったときに、前記チップ・ストライプをオンライン状態に設定することと
    を含む、コンピュータ・プログラム。
  9. 前記書き込みキュー・ヘッドを増分することが、前記書き込みキュー・ヘッドを、前記複数のメモリ・ブロックからのメモリ・ブロック内の次の空きページに対して設定することを含む、請求項8に記載のコンピュータ・プログラム。
  10. 前記方法が、ガーベジ・コレクションをトリガすることをさらに含む、請求項8に記載のコンピュータ・プログラム。
  11. 前記複数のメモリ・ブロックが、前記メモリ・チップ上の前記複数のメモリ・ブロックのそれぞれのアドレスと同じ順番で、前記メモリ・チップ上の空きブロック・キュー内で保持される、請求項8に記載のコンピュータ・プログラム。
  12. 前記ガーベジ・コレクションが、最後の空きチップ・ストライプである前記チップ・ストライプが前記書き込み状態に変更されたことに応答してトリガされる、請求項10に記載のコンピュータ・プログラム。
  13. 前記ガーベジ・コレクションが、前記メモリ・チップ上の空き状態のチップ・ストライプの所定の閾値に到達したことに応答してトリガされる、請求項10に記載のコンピュータ・プログラム。
  14. 前記ガーベジ・コレクションが、前記メモリ・ブロックが満杯になったことに応答してトリガされる、請求項10に記載のコンピュータ・プログラム。
  15. 前記ガーベジ・コレクションが、
    前記チップ・ストライプをクリーニング状態に設定することと、
    前記複数のページの各々について、
    ページ・メタデータ及びLBA−PBAマッピング情報を読み出すことと、
    前記ページが有効であることに応答して、
    前記全ページデータを読み出すことと、
    前記ページのためのターゲット位置を取得することと、
    前記ページデータを新たな位置に書き込むことと、
    前記チップ・ストライプを消去状態に設定することと、
    前記チップ・ストライプ内の全てのブロックを消去することと、
    前記チップ・ストライプを空き状態に設定することと、
    を含む、請求項10に記載のコンピュータ・プログラム。
  16. 書き込み割り当てスケジューラを有する複数のチャネルと、
    前記複数のチャネルの各々に通信可能に結合された少なくとも1つのチップ・ストライプであって、空き状態と、書き込み状態と、オンライン状態と、消去状態とを有する、少なくとも1つのチップ・ストライプと、
    を含み、
    前記少なくとも1つのチップ・ストライプは、書き込み要求を割り当てるために前記空き状態から前記書き込み状態に設定されるように構成され、かつ、前記チップ・ストライプが満杯になったときに前記書き込み状態から前記オンライン状態に設定されるようにさらに構成される、メモリ・システム。
  17. 前記複数のチャネルの各々の上に配置される書き込みキュー・ヘッドをさらに含み、
    前記チップ・ストライプ内の前記複数のチャネルの各々について、前記システムが、
    前記書き込みキュー・ヘッドを、前記チップ・ストライプ由来のそれぞれのチャネルに属するチップ内の第1の空きページに対して設定し、
    書き込み要求を、書き込み割り当てスケジューラに従って、前記複数のチャネル間で割り当て、
    ページ書き込みを生成し、
    前記ページ書き込みに応答して、前記書き込みキュー・ヘッドをインクリメントし、
    前記チップ・ストライプが満杯になったときに、前記チップ・ストライプをオンライン状態に設定する
    ように構成される、請求項16に記載のメモリ・システム。
  18. 前記システムが、最後の空きチップ・ストライプである前記チップ・ストライプのうちの少なくとも1つが前記書き込み状態に変更されたことに応答して、及び、前記システム内の空き状態のチップ・ストライプの所定の閾値に到達したことに応答して、ガーベジ・コレクションがトリガされるようにさらに構成される、請求項17に記載のメモリ・システム。
  19. メモリ・ブロックが満杯になったとき、及び前記メモリ・システム上の空きブロックの所定の閾値に到達したときに、前記ガーベジ・コレクションがトリガされる、請求項18に記載のメモリ・システム。
  20. 前記ガーベジ・コレクションが、
    前記チップ・ストライプをクリーニング状態に設定することと、
    前記複数のページの各ページについて、
    ページ・メタデータ及びLBA−PBAマッピング情報を読み出すことと、
    前記ページが有効であることに応答して、
    前記全ページデータを読み出すことと、
    前記ページのためのターゲット位置を取得することと、
    前記ページデータを新たな位置に書き込むことと、
    前記チップ・ストライプを消去状態に設定することと、
    前記チップ・ストライプ内の全てのブロックを消去することと、
    前記チップ・ストライプを空き状態に設定することと、
    を含む、請求項18に記載のメモリ・システム。
JP2012543970A 2009-12-15 2010-12-14 フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム Active JP5613260B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/637,897 2009-12-15
US12/637,897 US8285946B2 (en) 2009-12-15 2009-12-15 Reducing access contention in flash-based memory systems
PCT/IB2010/055802 WO2011073902A1 (en) 2009-12-15 2010-12-14 Reducing access contention in flash-based memory systems

Publications (2)

Publication Number Publication Date
JP2013513881A true JP2013513881A (ja) 2013-04-22
JP5613260B2 JP5613260B2 (ja) 2014-10-22

Family

ID=43821825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012543970A Active JP5613260B2 (ja) 2009-12-15 2010-12-14 フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム

Country Status (5)

Country Link
US (2) US8285946B2 (ja)
EP (1) EP2513798B1 (ja)
JP (1) JP5613260B2 (ja)
CN (1) CN102713866B (ja)
WO (1) WO2011073902A1 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015083225A1 (ja) * 2013-12-02 2015-06-11 富士通株式会社 情報処理装置、ストレージ、及びアクセス制御方法
US9811462B2 (en) 2015-04-30 2017-11-07 Toshiba Memory Corporation Memory system executing garbage collection
JP2018142237A (ja) * 2017-02-28 2018-09-13 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2018142238A (ja) * 2017-02-28 2018-09-13 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2018142236A (ja) * 2017-02-28 2018-09-13 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2018536908A (ja) * 2016-11-11 2018-12-13 華為技術有限公司Huawei Technologies Co.,Ltd. ストレージシステムおよびシステムガベージコレクション方法
JP2019008729A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2020524839A (ja) * 2017-06-23 2020-08-20 グーグル エルエルシー Nandバッファを有するnandフラッシュストレージデバイス
JP2020198128A (ja) * 2020-08-31 2020-12-10 キオクシア株式会社 メモリシステム
JP2020205077A (ja) * 2020-08-31 2020-12-24 キオクシア株式会社 メモリシステムおよび制御方法
JP2021007058A (ja) * 2020-10-23 2021-01-21 キオクシア株式会社 メモリシステムおよび制御方法
JP2021509745A (ja) * 2017-12-28 2021-04-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 同じチャネルで不均一なレイテンシを有するメモリタイプのための応答のサポート

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678868B1 (ko) * 2010-02-11 2016-11-23 삼성전자주식회사 플래시 주소 변환 장치 및 그 방법
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
US8949511B2 (en) * 2011-09-30 2015-02-03 Hitachi, Ltd. Nonvolatile semiconductor storage system
CN102662856B (zh) * 2012-04-27 2015-10-28 中国科学院计算技术研究所 一种固态硬盘及其存取方法
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US9170943B2 (en) 2013-08-29 2015-10-27 Globalfoundries U.S. 2 Llc Selectively enabling write caching in a storage system based on performance metrics
KR102161448B1 (ko) 2014-02-03 2020-10-05 삼성전자 주식회사 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
KR102506135B1 (ko) 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20160112135A (ko) 2015-03-18 2016-09-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102417182B1 (ko) 2015-06-22 2022-07-05 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR102445662B1 (ko) 2015-07-01 2022-09-22 삼성전자주식회사 스토리지 장치
KR102449192B1 (ko) 2015-09-10 2022-09-29 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
KR102501751B1 (ko) 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US10254998B2 (en) * 2015-11-03 2019-04-09 Samsung Electronics Co., Ltd. Coordinated garbage collection of flash devices in a distributed storage system
US20170123700A1 (en) 2015-11-03 2017-05-04 Samsung Electronics Co., Ltd. Io redirection methods with cost estimation
KR102013430B1 (ko) * 2015-12-03 2019-08-22 후아웨이 테크놀러지 컴퍼니 리미티드 어레이 컨트롤러, 솔리드 스테이트 디스크, 및 데이터를 기록하기 위해 솔리드 스테이트 디스크를 제어하는 방법
CN106528438B (zh) * 2016-10-08 2019-08-13 华中科技大学 一种固态存储设备的分段式垃圾回收方法
US11416162B2 (en) * 2017-09-27 2022-08-16 Beijing Memblaze Technology Co., Ltd Garbage collection method and storage device
KR102504293B1 (ko) 2017-11-29 2023-02-27 삼성전자 주식회사 패키지 온 패키지 형태의 반도체 패키지
US10496548B2 (en) * 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US11023150B2 (en) * 2019-07-01 2021-06-01 International Business Machines Corporation Block mode toggling using hybrid controllers
CN110515859B (zh) * 2019-07-09 2021-07-20 杭州电子科技大学 一种固态硬盘读写请求并行处理方法
CN111078137B (zh) * 2019-11-07 2021-07-06 深圳市金泰克半导体有限公司 清理存储空间的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
JP2007520842A (ja) * 2003-12-30 2007-07-26 サンディスク コーポレイション マルチブロック単位へのブロックの適応決定論的グループ化
JP2007317047A (ja) * 2006-05-29 2007-12-06 Kwok-Yan Leung マルチチャンネルのフラッシュメモリにおけるデータアクセス方法
WO2009000186A1 (en) * 2007-06-28 2008-12-31 Memoright Memoritech (Shenzhen) Co., Ltd Control method for logical strips based on multi-channel solid-state non-volatile storage device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
JP4518951B2 (ja) 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US20090204872A1 (en) 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7409490B2 (en) 2006-04-15 2008-08-05 Yi-Chun Liu Method of flash memory management
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
TWI366828B (en) 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
US7978516B2 (en) 2007-12-27 2011-07-12 Pliant Technology, Inc. Flash memory controller having reduced pinout
US8566507B2 (en) * 2009-04-08 2013-10-22 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
JP2007520842A (ja) * 2003-12-30 2007-07-26 サンディスク コーポレイション マルチブロック単位へのブロックの適応決定論的グループ化
JP2007317047A (ja) * 2006-05-29 2007-12-06 Kwok-Yan Leung マルチチャンネルのフラッシュメモリにおけるデータアクセス方法
WO2009000186A1 (en) * 2007-06-28 2008-12-31 Memoright Memoritech (Shenzhen) Co., Ltd Control method for logical strips based on multi-channel solid-state non-volatile storage device

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015083225A1 (ja) * 2013-12-02 2015-06-11 富士通株式会社 情報処理装置、ストレージ、及びアクセス制御方法
JPWO2015083225A1 (ja) * 2013-12-02 2017-03-16 富士通株式会社 情報処理装置、ストレージ、及びアクセス制御方法
US9811462B2 (en) 2015-04-30 2017-11-07 Toshiba Memory Corporation Memory system executing garbage collection
US10303599B2 (en) 2015-04-30 2019-05-28 Toshiba Memory Corporation Memory system executing garbage collection
JP2018536908A (ja) * 2016-11-11 2018-12-13 華為技術有限公司Huawei Technologies Co.,Ltd. ストレージシステムおよびシステムガベージコレクション方法
US10621085B2 (en) 2016-11-11 2020-04-14 Huawei Technologies Co., Ltd. Storage system and system garbage collection method
JP2018142237A (ja) * 2017-02-28 2018-09-13 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2018142238A (ja) * 2017-02-28 2018-09-13 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2018142236A (ja) * 2017-02-28 2018-09-13 東芝メモリ株式会社 メモリシステムおよび制御方法
USRE49508E1 (en) 2017-02-28 2023-04-25 Kioxia Corporation Memory system and method for controlling nonvolatile memory
JP2020524839A (ja) * 2017-06-23 2020-08-20 グーグル エルエルシー Nandバッファを有するnandフラッシュストレージデバイス
JP7234144B2 (ja) 2017-06-23 2023-03-07 グーグル エルエルシー Nandバッファを有するnandフラッシュストレージデバイス
JP2019008729A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2021509745A (ja) * 2017-12-28 2021-04-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 同じチャネルで不均一なレイテンシを有するメモリタイプのための応答のサポート
JP2020198128A (ja) * 2020-08-31 2020-12-10 キオクシア株式会社 メモリシステム
JP2020205077A (ja) * 2020-08-31 2020-12-24 キオクシア株式会社 メモリシステムおよび制御方法
JP2022051902A (ja) * 2020-08-31 2022-04-01 キオクシア株式会社 メモリシステム
JP2022091981A (ja) * 2020-08-31 2022-06-21 キオクシア株式会社 コントローラ
JP7132291B2 (ja) 2020-08-31 2022-09-06 キオクシア株式会社 メモリシステムおよび制御方法
JP7342163B2 (ja) 2020-08-31 2023-09-11 キオクシア株式会社 メモリシステム
JP2021007058A (ja) * 2020-10-23 2021-01-21 キオクシア株式会社 メモリシステムおよび制御方法
JP7102482B2 (ja) 2020-10-23 2022-07-19 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
EP2513798A1 (en) 2012-10-24
JP5613260B2 (ja) 2014-10-22
US8725957B2 (en) 2014-05-13
US8285946B2 (en) 2012-10-09
WO2011073902A1 (en) 2011-06-23
CN102713866A (zh) 2012-10-03
US20120297128A1 (en) 2012-11-22
EP2513798B1 (en) 2019-10-23
US20110145475A1 (en) 2011-06-16
CN102713866B (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
JP5613260B2 (ja) フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム
EP3665560B1 (en) Ssd architecture supporting low latency operation
US10528464B2 (en) Memory system and control method
US10614888B2 (en) Memory system that selectively writes in single-level cell mode or multi-level cell mode to reduce program/erase cycles
TWI421877B (zh) 平衡主機寫入作業和快取清除之方法和系統
CN109144887B (zh) 存储器系统及控制非易失性存储器的控制方法
US9760309B2 (en) Method and device for managing a memory
US8171239B2 (en) Storage management method and system using the same
JP2021128582A (ja) メモリシステムおよび制御方法
US9507719B2 (en) Garbage collection in hybrid memory system
US20120239853A1 (en) Solid state device with allocated flash cache
US9047200B2 (en) Dynamic redundancy mapping of cache data in flash-based caching systems
US9183142B2 (en) Reducing flash memory write amplification and latency
JP6060277B2 (ja) ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置
WO2012161659A1 (en) A memory storage device, and a related zone-based block management and mapping method
KR20120030137A (ko) 영구 가비지 컬렉션을 갖는 메모리 시스템
US20140281132A1 (en) Method and system for ram cache coalescing
KR102347841B1 (ko) 메모리제어장치 및 메모리제어장치의 동작 방법
US20190278486A1 (en) Storage system, data management method, and data management program
US20120102242A1 (en) Controlling data destaging within a multi-tiered storage system
KR100962186B1 (ko) 초저전력 스토리지 시스템 및 그의 데이터 관리방법
KR101609304B1 (ko) 멀티칩 플래시 저장장치 및 그 방법
CN117369717A (zh) 用于存储设备中的数据放置的系统、方法和装置
TW202416139A (zh) 用於在儲存裝置中放置資料的設備

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140722

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: 20140819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140905

R150 Certificate of patent or registration of utility model

Ref document number: 5613260

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150