JP6063995B2 - メモリシステム内の少なくとも半自律性のモジュールおよび方法 - Google Patents
メモリシステム内の少なくとも半自律性のモジュールおよび方法 Download PDFInfo
- Publication number
- JP6063995B2 JP6063995B2 JP2015108226A JP2015108226A JP6063995B2 JP 6063995 B2 JP6063995 B2 JP 6063995B2 JP 2015108226 A JP2015108226 A JP 2015108226A JP 2015108226 A JP2015108226 A JP 2015108226A JP 6063995 B2 JP6063995 B2 JP 6063995B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- memory
- function
- data
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 231
- 238000000034 method Methods 0.000 title claims description 53
- 230000006870 function Effects 0.000 claims description 361
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000013519 translation Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 description 58
- 238000010586 diagram Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 24
- 238000003860 storage Methods 0.000 description 24
- 230000036961 partial effect Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 21
- 238000007726 management method Methods 0.000 description 19
- 238000013459 approach Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 15
- 230000000670 limiting effect Effects 0.000 description 14
- 230000006854 communication Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 13
- 238000012937 correction Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 8
- 230000014616 translation Effects 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 7
- 238000006731 degradation reaction Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000001965 increasing effect Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000002853 ongoing effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000013403 standard screening design Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
ェースポート144を通じてホストへ転送されるべき読み出しデータとしてまたはコントローラモジュールポート100のうちの1つを通じてモジュールへと転送されるべき書き込みデータとして中継するためのメモリを提供することができる。双方向データ経路146(そのうちいくつかを参照番号を用いて示す)は、データ経路および制御部120と、データバッファ部140との間に設けられ得る。双方向データ経路146の数とコントローラモジュールポート100の数との間の一対一の対応は不要であることが理解されるべきである。この点について、充分なデータ帯域幅全体を確保するために、充分な数の別個の双方向データ経路146を設けることができる。すなわち、双方向データ経路146の合計数は、コントローラモジュールポートの合計数未満であり、モジュールポートの合計数に等しくあるか、またはコントローラモジュールポートの合計数を超え得る。
データスループットの増加のために複数のメモリデバイス170をメディアポート176に取り付けることができる。図3に示すように、いくつかの実施形態において、各メディアポート176は、メモリデバイス群に対してインターフェースを提供することができる。
ジュール内の利用可能な書き込みデータ経路のうちの1つである。同時に、第2のメディアポート176を用いて、取り付けられたメモリデバイスのうち1つから読み出し機能を行う。読み出しデータ経路は、第2のメディアポートにとって利用可能な任意の読み出しデータ経路でよい。
において、代数エラー訂正符号(「代数ECC」)で符号化されたデータを(使用モードに関係無く)書き込むことができる。よって、この場合における適切なデコーダは、適用された特定のコードを復号化し、特定のコードによって許容される範囲までエラーを訂正するデコーダである。別の場合として、SBCまたはMBCメモリのためのモジュールによって用いられる特定の代数コードは、SBCまたはMBCメモリがメモリデバイスのページ構造に直接対応する単位でアクセスされるかまたはホストのビュー(および管理責任)からのページレベル詳細を除去するホストの代わりにモジュールが抽象化サービスを行うかにさらに依存し得る。いずれの場合も、異なるデコーダ実施形態が用いられ得る。
b)もう1つの符号エラー容量設定を用いたRS(リードソロモン)復号化のみ、
c)適切な形態の逐次復号化(例えば、畳み込み)と組み合わされたBCH復号化、および
d)適切な形態の逐次復号化と組み合わされたRS復号化
1つよりも多くのデコーダ機能を提供するように構成可能なモジュールは、デコーダの特定のインスタンスを特定のモードで動作させることができる。例えば、2デコーダモジュールは、2つのデータ経路上の真の復号化並行処理をサポートすることができる。モジュール中の複数のデコーダによって提供される柔軟性の一部は、所与の時間において非限定的な例として1つのデコーダがBCHオンリーデコーダとして構成することができる一方、その他のデコーダが畳み込み(ビタビ検出器)デコーダおよびリードソロモンデコーダの組み合わせとして構成することができる点に起因する。
行うメモリデバイスについての、較正または補償(例えば、平均値およびアレイプロセッサ機能(共有されている同時係属中の米国特許出願シリアル番号第12/888,585号(出願日:2010年9月23日、名称:「MEMORY QUALITY MONITOR BASED COMPENSATION METHOD AND APPARATUS」(本明細書中以下‘585出願と呼ぶ))中に記載)と共に用いられるデータ処理がある。詳細には、補償においては、メモリデバイスの物理的配置構成と関連付けられたパラメータを用いた信号処理が行われ、較正においては、計量収集分析機能が行われ得る。計量収集分析機能は、直接ソフトウェア制御下のハードウェア機能として行われ得る。
210から発生しかつメモリデバイス170において終了する後続転送。
a.メモリデバイス種類。
b.符号化機能および復号化機能(例えば、アルゴリズム)。
c.補償機能(読み出しデータ上の補償およびデータ書き込み前の補償に適用される)。d.フラッシュメモリのためのブロック消去機能。
e.モジュールインターフェースサポート(コマンド実行)機能。
f.自律性ウェアレベリング機能(モジュールが、主要コントローラから独立した自立型機能としてウェアレベリングを実行する)。
g.半自律ウェアレベリング機能(主要コントローラが、関連パラメータおよびコマンドをモジュールインターフェースを介してモジュールへと提供することにより、ウェアレベリング機能を制御する)。
h.ローカル自律性フラッシュ変換層(FTL)の実装。
i.指向性フラッシュ変換層の(ホストによって制御された)実装(主要コントローラが、関連パラメータおよびコマンドをモジュールインターフェースを介してモジュールへと提供することにより、フラッシュ変換動作を制御する)。
j.ホストによって指示される物理的メモリアクセス。ホストは、主要コントローラに適切なコマンドを発行することにより、複数のモジュール中の物理的メモリへアクセスすることができ、主要コントローラは、選択されたモジュールへ取り付けられたメモリデバイスのうち1つに適切な直接アクセスコマンドを発行することにより、このようなコマンドに応答することができる。
k.ホストに対する論理ブロック抽象化により、モジュールによって指示された物理的メモリアクセス。
l.自律性ガーベジコレクション(通常はローカルFTLに適用される)。
m.半自律ガーベジコレクション(主要コントローラは、この制御の適用先であるモジュールに適切なパラメータを書き込むことにより、主要コントローラに取り付けられたモジュールのうち1つ以上におけるガーベジコレクション機能を制御する)。
n.指向性ガーベジコレクションのサポート(例えば、内部ブロックコピー機能)(主要コントローラは、各モジュールのモジュールインターフェースを介して複数のモジュールのうち少なくとも一部に適切なパラメータを書き込むことにより、ガーベジコレクション機能を制御する)。
o.取り付けられたメモリデバイスのローカルセルフテスト
p.自律性電力管理機能
リストは例示目的のためのものであり、包括的または限定的なものを意図していないことが理解されるべきである。よって、モジュール構成は、少なくともモジュール動作の前
述の態様の選択および再構成を任意の適切な組み合わせで支援する。
ポート240によって提供されるモジュールインターフェース42を介して形成する。データ経路340は、バッファ部210の内外の他のデータ経路よりも高い帯域幅を持ち得る。なぜならば、データ経路330と同様に、複数の他のデータ経路が出力データ経路340によって提供され得るからである。
のモジュールへの接続および多数のモジュールの制御を行うことができる。本明細書中に記載のモジュールインターフェースにより、高レベルSSD機能から低レベルフラッシュ機能を抽象化することが可能になる。よって、コントローラを例えば高レベルのコマンド実行局面のみで構成することにより、コントローラの負荷を低減することができる。低レベル機能(例えば、物理的フラッシュ特性に関連する機能)は、モジュールレベルにおいて実行することができる。より多数の取り付けられたメモリデバイスにより、少なくともメモリデバイス管理のための半自律機能の利用を通じて、SSD性能を向上させることができることが理解されるべきである。単一のハードウェア構成(事前構成されたモジュールおよび特定のSSDコントローラの特定の組み合わせ)内において、モジュールを少なくとも半自律性のエンティティとするようにSSDを構成することができ、コントローラの役割は、モジュール中の論理アドレス指定されたデータ単位にアクセスすることである。このようなシステムにおいて、管理についてのコントローラの主な役割は、各モジュールによって提供される(モジュール単位の集約としての)記憶を単一のより大きな容量で管理することである。
コントローラ40から受信されたコマンドに対する最も高速の可能な応答を支援することにより、低遅延がモジュール30によって支援される。この支援は、以下の少なくとも2つのアプローチを用いた実施形態を用いて、モジュールインターフェース42によって達成される:第1のアプローチは、同時実行コマンドを支援することであり、第2のアプローチは、短データパケットを任意選択することである。第1のアプローチを通じて、コマンドをコントローラ40からモジュール30へと発行することができ、1つ以上の他のコマンドが既に実行している場合であっても、すぐに作用することができる。その結果、(コマンドが同一メモリデバイスに既にアクセスしていない場合でも)コマンドが標的メモリデバイスへとアクセスすることができ、(現在活性状態のコマンドを完了させた後に別のコマンド実行を開始する場合よりも)コントローラ40とモジュール中のメモリデバイス170との間のデータ転送をより迅速に開始することが可能になる。コマンド待ち行列および同時コマンド実行のためのインターフェース支持により、このような同時実行能力が可能になる。第2のアプローチを通じて、読み出しコマンドまたは書き込みコマンドのデータ転送位相をより迅速に開始することができるため、(より長いパケットを用いた場合よりも)より迅速に完了することが可能になる。第2のアプローチと、短いパケットではなく長いパケットを用いたアプローチとの間の違いとして、より短いパケットを用いることにより、待ち時間を短くすることができる点がある。なぜならば、長パケットと比較して、短パケットは転送時間を短縮できるため、同時に実行されている転送全てに対し、低遅延ベースでバッファ帯域幅が割り当てられるからである。所与のコマンドに対し、短データパケットにより、(より長いデータパケットが用いられる場合に長期化し得る待ち時間と比較して)インターフェースへのアクセス待ち時間がより短縮することができる。データパケット長さを構成することができる。しかし、特定の実施形態のためのデータパケット長さは、例えば、部分割当時間において用いられるパラメータによって決定され得る。このパラメータは、アクセス待ち時間をパケット長さに従って優先順位付けする。そのため、所与のモジュール構成について最大パケット長さをコントローラ40によって決定することができる。また、第2のアプローチを用いて、図4のデータ伝送経路400
およびデータ受信経路402について説明した方向切り換え機能を用いることができる。選択された場合、方向切り換え機能により、全パケットサイズのより高速な送信が可能になり、これにより、スループットおよび待ち時間性能双方が増加する。
高スループットのためにより大型のパケットが必要な場合、高スループットおよび低遅延は時に相反する目的となる。短パケットサイズを用いれば待ち時間性能が向上するが、スループット性能の劣化も招く。なぜならば、インターフェースの固有オーバーヘッドは、大型パケットの場合よりも小型データパケットの場合によって比例的に増大するからである。すなわち、長パケットの場合よりも短パケットの場合の方が転送効率が低下する。そのため、インターフェースに対する要求がインターフェースの帯域幅容量に近づいた場合、短パケットの場合よりも長パケットの場合の方がデータスループットが向上する。構成選択肢として、パケットサイズを選択できる能力も、高スループットおよび低遅延の競合する利益に対処するための、高データスループット支持のための局面である。
実施形態において、コマンド待ち行列機能は、主にハードウェア機能として、モジュールインターフェース42中に存在し得る。各実行コマンドは、コマンド実行に関係する全トランザクション(例えば、コマンド転送、データ転送、およびハンドシェーキングトランザクションの状態)を支援する必要がある。これらのトランザクションは、施設(例えば、手続き中のDMAリソース)を用いることができる。このようなハードウェアリソースは、コマンド待ち行列機能をイネーブルするために必要な範囲において、モジュールインターフェース定義中に設けることができる。コマンド待ち行列のさらなる機能として、キュータグの生成および確認がある。キュータグとは短い2値であり、コマンドに必要な前述のハードウェアリソースをアドレス指定するために用いられる整数である。キュータグは、ホストからデバイスへと送られる各新規コマンドコードと共に送信され、コマンドが実行し続けている限り、活性状態のままである。コマンドが終了した後、キュータグは活性状態ではなくなり、後続コマンドが発行されたときにキュータグを再度割り当てることが可能になる。
モジュールインターフェースプロトコルは、長い多ブロック転送内におけるブロックの非順次送信を可能にするコントローラおよびモジュール間のトランザクションモデルを支援することができる。トランザクションモデルにより、任意の読み出しまたは書き込みコマンド中に1つ以上の「接続」を含めることが可能になる。各接続は仮想構成概念であり、より長い転送の一部についてアドレス指定制御およびカウント制御を割り当てる。そのため、接続は時間エンティティとして存在し、コマンドの一部(通常はデータ転送)を維持するために存在し、存在において時間的制約があるため終了する必要がある。時間的制約は、活性状態になり得る他のコマンドに対してインターフェースが必ず利用できるようにするためのものである。この制約は、固定してもよいし、あるいは変化してもよい。読み出しまたは書き込み転送においては、単一の接続のみが必要である場合もあるし、あるいは多数の接続が必要な場合もある。そして、コマンドに必要な接続数は、読み出しまたは書き込みコマンドの合計長さ(単位:バイト)の関数であり、また、時間的制約のサイズの関数である。この接続数の決定は、モジュール中において実行しているコマンド取り扱いソフトウェアによって行われ得る。複数の接続を一度に確立することができるため、所与の時間において所与のコマンド内に1つの接続のみが存在するか、または、所与のコマンドが複数の活性接続を持っていてもよく、各接続からコマンドの合計転送長さの異なる部分が転送される。(ブロックの)非順次転送は、例えば以下のようにして支援することができる。すなわち、コマンドによって転送されているブロックの全範囲内のオフセットと比較して非順次ブロックまたはいくつかのブロックを転送する接続を確立する。
コントローラ40は、モジュール30へ取り付けられたメモリデバイスへアクセスするために異なるアプローチを用いることができる。変動がある場合、本明細書中以下に記載するような2つの実施形態が一般的である。
。なぜならば、ソフトウェアは、ブロック抽象化能力に関連する機能を支援するからである。これらの機能をいくつか挙げると、ローカルフラッシュ変換層(FTL)、消去動作(例えば、ガーベジコレクション)に対する制御、ウェアレベリング、ビット密度構成(例えば、エンコーダ/デコーダ構成)などがある。ブロック抽象化についてのさらなる詳細について、図5を参照してさらに説明する。
最も重要な機能のみを実行することにより、モジュールインターフェースは、可能なコマンドオーバーヘッドよりも低いコマンドオーバーヘッドで動作することができる。インターフェースはポイントツーポイント接続のみの形態をとるため、プロトコルは、多デバイスサポートの負担から逃れられる。ホストがデバイスとのトランザクションを開始、実行および監視する際、デバイスアドレスの生成、記録または利用は不要である。同様に、モジュールインターフェースによって実装されるポイントツーポイント物理的接続は、(コマンド実行の一部として既に述べた有限時間論理/仮想接続とは対照的に)動的に確立するのではなく、専用として用いられる。固有のモジュールインターフェースを介した各ホスト/デバイス接続の構成は製造時において確立されるため、ホストがデバイスをパワーオン時間に構成する必要が無くなる。
ントローラとメモリモジュールとの間に並列に延びるいくつかのバスを設けることが可能であるため、これを倍加させることができる。全体的な結果として、SSDにより、既存のSSDまたはハードドライブのデータレート(スループット)を複数倍にすることができる。
、物理的に隣接したページ510a〜510dを含むものとして図示されている。読出動作または書込動作が、ページ510aの斜線表示された第2の半分と、ページ510bの斜線表示された第1の半分とを含む場合、読出動作または書込動作においては、ページ510aおよび510b全体が読み出されるかまたは書き込まれる。これらのページの斜線表示領域は、例えば、図3のエンコーダ220およびデコーダ202によって用いられるコードワードを示し得る。そのため、ページラッピングにより、動作目的のためにページ間に物理的切れ目が無いかのような、ページ境界を跨ぐ符号化機能および復号化機能が可能となる。
して健康指標を提供するように、モジュールの一部のモジュールの報告部を構成することができる。例えば、パラメータは、閾値を指定し得る。閾値において、機能エンジンは、以下のように応答する。すなわり、メモリの一部から離隔方向に既存のデータをコピーすることによりより高いビット密度で前回割り当てられたメモリの一部を回収し、その部分を消去し、その後、その部分を相対的により低いビット密度へと再割当して、当該部分へのさらなる書き込みがより低いビット密度となるようにする。この活動は、少なくともいくつかのコントローラパラメータ(例えば、メモリの進行中の摩耗に基づいて初期構成中に設けられるもの)に優先し得る。実施形態において、コントローラは、健康指標にアクセスおよび監視し得、パラメーター制御を提供して、上記のようにメモリの一部を回収するようモジュールに命令し得る。もちろん、これらの多様な活動を行うためには、以下において適切なときに詳述される、機能エンジンによって提供される機能の利用が必要である。
の動作と共に、構成を動作分岐740によって管理することができる。進行中の動作時において、現在のFTLテーブル情報をFTL更新経路748を介して(例えば、機能エンジンのテーブル領域620(図6)から)回収することができる。FTL更新は、後述する書込および消去動作の結果発生する。書込および消去動作において、FTL機能によって物理アドレスが付加または削除されると、ウェアレベリング機能への影響が必ず発生する。FTL機能を更新する目的のために、経路748は双方向性であることが理解されるべきである。同様に、ウェアレベリング機能も、例えばテーブル領域620のFTL領域を編集することにより、FTL機能にとって可視状態の変更を行うことができる、一例として、書込動作の前に、FTLは、書き込みに好適な位置をウェアレベリング機能から入手する。なぜならば、ウェアレベリング機能の役割は、さらに詳述するように、全ての利用可能な位置内からの各新規書込動作について物理的位置を定義することであるからである。ガーベジコレクション機能612からの更新は、ガーベジコレクション更新経路750上において利用可能となる。これらの更新は、通常のFTL更新およびガーベジコレクション更新に加えて、ウェアレベリング機能への専用としてもよい。ウェアレベリング機能はガーベジコレクション機能にとって可視性であるため、例えばテーブル領域620を介して、ウェアレベリング機能は、ガーベジコレクション機能によって利用可能な状態に戻されたメモリから、新規書き込みのための物理アドレスを割り当てることができる。ガーベジコレクション機能を更新する目的のために、経路750は双方向性になっていることが理解されるべきである。
b.1つのブロック中の全ページを満たすだけの充分なデータを収集した後、ブロックへの書き込みを開始し、その後、データ全てを1単位としてブロック中へと書き込むことが(必須ではないにしろ)望ましい。このようにすることで、ページ間干渉機構に対する補償が得られる。
前述の規則は、読み出しおよび書き込みアクセスのためのブロック中心の機構を暗示する。そのため、ガーベジコレクションステップにおいて、全ての活性データページまたは全ての陳腐化データページを含むブロックとしてページを整理することによって活性データページから陳腐化ページを分離することにより、記憶容量が取り出され得る。陳腐化データページしか含んでいないブロックは消去することができ、利用可能な状態にすることができる。ここで、本文脈における「陳腐化」という用語はメモリ単位(ページ、ブロックまたは部分(セクション))を指し得、この単位の要素に書き込まれている値はもはやモジュールによって有効と認識されていない点に留意されたい。これは、モジュールによ
って有効と認識されている書き込みデータの別の場合とは対照的である。この後者の場合を「活性(アクティブ)」データと呼ぶ。要素中の消去状態意外に何も値が現在書き込まれていないデータ単位を「利用可能」なものとして定義する。
は824において終了する。別の部分が利用可能である場合、動作は812へと戻って、部分は現在の部分となる。割り当てられた部分全てが取り扱われるまで、プロセスが繰り返される。
フロー図として示される。ビット密度構成機能は、904において主要コントローラ40から利用可能なパラメータ902の一部と、機能エンジンの共有パラメータ部322(図3)に含有され得る、906においてモジュールから利用可能な内部パラメータと、に基づいて動作することができる。この実施形態によれば、特定のビット密度における動作のためにモジュール内に部分が再割当される機能は、ガーベジコレクション機能による部分の初期割当の後に行われることが図示されている。多数の異なるビット密度が利用可能であり、これらの利用可能なビット密度は、モジュールのメモリデバイスのメモリ技術と、読み出し動作および書込動作時に用いられる符号化/復号化機能との双方に少なくとも部分的に基づいて決定することができることが理解されるべきである。ビット密度構成は、シングルビットパーセル構成からマルチビットパーセル構成へと変化し得る。セル毎に保存されたビットについての各ビット密度値も、符号化および復号化アプローチと、符号化および復号化機能によって用いられるさらなるオーバーヘッドの量および種類とに関係して変動し得る。符号化および復号化アプローチは、上述したようなコードの組み合わせを含み得る。この組み合わせは、適用されたオーバーヘッドの量の関数として結果を達成する。畳み込みコードおよびブロックコードはどちらとも、多様なレベルのオーバーヘッドにおいて動作し得、特定の量のオーバーヘッドが、このようなコードをコントローラ設定において実行するために適用されたパラメータによって決定される。オーバーヘッド量は通常は、SNRと、手元にあるメモリデバイス部の他の任意の劣化機構特性とを前にして最適性能が得られるように指定される。ビット密度は、NANDフラッシュ中のブロック単位レベルまで適用可能な属性として、適用され得る。最終的に、ビット密度構成の粒度は、選択された符号化および復号化機能と、モジュールのメモリデバイスにおけるメモリ技術との関数であり得る。本開示に記載される例において、所与の部分内の全ブロックが当該部分に対して選択されたビット密度において動作するように、ビット密度構成が当該部分レベルに設定される。この部分は、単一のブロックを含み得、これはNANDフラッシュの利用に対する関係を示し、個々のビット密度構成は、単一のブロック位に小さいデータ保持単位に適用される点に留意されたい。
(最大数のプログラム/消去サイクルを超えることに起因して「摩耗した」コンポーネントメモリの場合のような)活性メモリプールからの一部の割当解除とについて、ビット密度の局面を決定することができることが理解されるべきである。
の入力により、メモリ能力データが訂正される。946において訂正されたメモリ能力データを鑑みて、再割当マップを決定する。再割当マップは、現在の部分の現在の割当と比較したときの現在の部分のビット密度構成の変化を反映する。このマップは、(ガーベジコレクション結果からの)新規割当において必要な部分を確立し、これらの部分を(ウェアレベリングから)配置することが可能な位置を確立する。
ールに書き込まれた際、および、前回書き込まれたデータが上書きまたは消去に起因して無効化される際に変更が必要である。
番号1300によって示されている。1302において、消去動作が開始される。消去動作の構造は、個々のメモリ素子のアクセスおよび消去に関する限り、当業者にとって周知であり、この目的のために広範な適切なプロセスを用いることが可能である点に留意されたい。
コントローラとの相互作用無く)機能を例えば自律的に行い、共有パラメータ部322からの第2の組のモジュール入力パラメータに基づいて選択された機能に対して第2のモードで動作することができる。第1の組のモジュール入力パラメータは、第2の1組のモジュール入力パラメータと異なるため、このように構成された各モジュールは、少なくともコントローラからの部分的制御の下、機能を第2のモードにおいて行う。例えば、第1のモードにおいて、モジュールは、テーブル領域620(図6)内のフラッシュ変換層をコントローラから独立して自律的に管理することができ、これにより、ローカルフラッシュ変換層はコントローラによってアクセス可能となるが変更はされず、一方、第2のモードにおいて、モジュールは、コントローラからの一定の貢献(例えば、モジュールフラッシュ変換層のモジュール部を変化させること)により、フラッシュ変換層全体のモジュール部を管理することができる、なぜならば、コントローラは、多様なモジュール全てのフラッシュ変換層に対して可視性であるからである。
大きくすることもできる。いずれの場合においても、理解されるように、ユーザブロック数と物理ページ数との対応関係を用いること無く、複数のユーザ−ブロックシーケンスを物理ページの群に適合させることができる。非限定的な例として、ユーザデータブロックは、関連付けられたオーバーヘッドを含む1つ以上の512バイト単位(セクター)として定義することができる。すなわち、1つのブロックが1つのセクターまたは複数のセクターで構成されているかは重要ではない。なぜならば、ブロックは所望のサイズでよいからである。特定のページ内の各ブロックの起点(例えば、開始点)は、指定されたオフセットによって特徴付けられる。オフセットの追跡は、ファームウェア、ハードウェアまたはこれらの任意の適切な組み合わせで実装することができる。1つのユーザブロックが1つの物理ページを超える場合、ブロックの残り部分が後続の物理ページへと割り当てられる。このような状況が発生した場合、(以下にさらに詳述するような)ユーザブロック起点を追跡する場合と同様の方法により、ユーザブロック内の切れ目の位置をアプリケーションによって追跡する。
とはできない。本例において例示を明確にするために、ブロック長さBLはページ長さPLの1.25に等しいと仮定する。理解されるように、初期ブロックB1は物理ページPP1によって部分的に包含され、B1の最終部分1610(20パーセント)は物理ページPP2によって包含される。ブロックB2の初期部1612は、PP2の開始部から1/4PLのオフセットで物理ページPP2の残りを充填する。ブロックB2の最終部分1614は、物理ページPP3の第1の50パーセントを充填する。ブロックB3の初期部1616は、PP3の開始部から1/2PLのオフセットで物理ページPP3の最終50パーセントを充填する。ブロックB3の最終部分1618は、物理ページPP4の初期75パーセントを充填する。PP4の最終の25パーセントは、利用可能なブロックがもう無いため利用されないか、または、後続ブロックによって利用可能である。本例において、3つのユーザブロックが4つの物理ページ上に保存される。ブロック長さがページ長さよりも長い場合でも、物理ページを完全に利用することができる。ここでも、ページ境界を跨ぐ様態でブロックを保存することができる。この点について、本明細書中に記載された教示内容に基づいて、ユーザデータブロックサイズと物理ページサイズとの間の任意の関係に対応することができる。このような柔軟性により、従来技術で可能であった記憶効率に比して、記憶効率の向上または最大化が可能になる。このような柔軟性により、ユーザブロックサイズを変更できる能力が得られる(例えば、所与のメモリ中の物理ページサイズを対応して増加させる必要無く、ユーザブロックフォーマットにECCパリティを付加できる能力)。所与のメモリデバイス中の物理ページリソースをフル活用できる傾向により、記憶効率の最適化が可能となる。
クの回復が完了したかを決定する。回復が完了した場合、回復されたブロックを1810において転送する。しかし、一方、1808において、ブロックが1つの物理ページから次の物理ページに跨がっていること(例えば、図15中のブロックB2および図16中のブロックB1を参照)に起因してユーザデータブロックが不完全であることが特定される場合もあることが理解されるべきである。この場合、動作は1804へと戻り、次のページを読み出す。この次のページは、不完全なブロックの残り部分を含む。マッピング1806により、不完全なブロックが再度組み立てられ、完成したブロックがブロック送り1810へと送られる。1812において、現在の読出動作の最終ユーザブロックが回復されたかが試験により決定される。現在の読出動作の最終ユーザブロックが回復されていない場合、動作は1804へ戻って次のページを読み出す。最終のユーザブロックが回復された場合、現在の読出動作は1816において終了し、次の読出動作を待機する。
なものではなく、本発明を開示の様態のみに限定するものでもない。上記教示内容を鑑みれば、他の改変および変更が可能である。当業者であれば、特定の改変、置換、追加およびその副結合が可能であることを認識する。
12 システム
20 ホスト
30 モジュール
40 コントローラ
42 モジュールインターフェース
44 ホストインターフェース
46 キャッシュ
100 コントローラモジュールポート
120 データ経路および制御部
122 バス接続部
124 制御バス
130 マイクロプロセッサ
132 メモリ
134、136 レジスタ
140 データバッファ部
144 ホストインターフェースポート
146 双方向データ経路
150 バス
170 メモリデバイス
176 メディアポート
180 メモリデバイスインターフェース
190 データ経路および制御部190
192 メディアポートインターフェース
200 デコーダ読み出しデータ経路
202 デコーダ
204 直接読み出しデータ経路
210 データバッファ部
212 読み出し論理
220 エンコーダ
222 書き込み論理
230 直接書き込みデータ経路
240 コントローラポート
242 DMA部
300 埋設マイクロプロセッサ(CPU)
302 プログラムメモリ
320 機能エンジン
330 入力データ経路
340 出力データ経路
400 データ伝送経路
402 データ受信経路
410 クロック
500 モジュールNVMメモリ
502、504、506、508 メモリ部(メモリセクション)
510a〜510d ページ
602 共通施設
610 ウェアレベリング機能
612 ガーベジコレクション機能
614 ビット密度構成機能
616 FTL機能616
624 報告部
630 コントローラパラメータ
632 モジュールパラメータ
Claims (15)
- コントローラと、
前記コントローラに接続されたメモリモジュールであって、前記メモリモジュールは、前記コントローラから供給される制御パラメータと、前記メモリモジュール自身が発生するモジュールパラメータとに基づいて、前記メモリモジュールについての管理機能を行うように構成されている、メモリモジュールと、
を含むことを特徴とするメモリシステム。 - 前記メモリモジュールが、前記管理機能を前記コントローラとの相互作用なしに実行することを特徴とする請求項1に記載のメモリシステム。
- 前記メモリモジュールが前記管理機能を前記コントローラの制御の下実行することを特徴とする請求項1に記載のメモリシステム。
- 前記管理機能が、ウェアレベリング機能を含むことを特徴とする請求項1乃至3のいずれか一項に記載のメモリシステム。
- 前記管理機能が、ガーベジコレクション機能を含むことを特徴とする請求項1乃至4のいずれか一項に記載のメモリシステム。
- 前記管理機能が、ビット密度構成機能を含むことを特徴とする請求項1乃至5のいずれか一項に記載のメモリシステム。
- 前記メモリモジュールが複数のメモリ部を含み、前記ビット密度構成機能は、前記複数のメモリ部の各々に独立にビット密度構成を付与することを特徴とする請求項6に記載のメモリシステム。
- 前記管理機能が、フラッシュ変換層管理機能を含むことを特徴とする請求項1乃至7のいずれか一項に記載のメモリシステム。
- 外部のコントローラから制御パラメータを受け取り、
メモリモジュールの内部でモジュールパラメータを発生し、
前記制御パラメータと前記モジュールパラメータとに基づいて、前記メモリモジュールについての管理機能を実行する、メモリシステムの制御方法。 - 前記管理機能の実行が、前記コントローラとの相互作用なしに実行されることを特徴とする請求項9に記載の方法。
- 前記管理機能の実行が、前記コントローラの制御の下実行されることを特徴とする請求項9に記載の方法。
- 前記管理機能が、ウェアレベリング機能を含むことを特徴とする請求項9乃至11のいずれか一項に記載の方法。
- 前記管理機能が、ガーベジコレクション機能を含むことを特徴とする請求項9乃至12のいずれか一項に記載の方法。
- 前記管理機能が、ビット密度構成機能を含むことを特徴とする請求項9乃至13のいずれか一項に記載の方法。
- 前記管理機能が、フラッシュ変換層管理機能を含むことを特徴とする請求項9乃至14のいずれか一項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/019,977 | 2011-02-02 | ||
US13/019,977 US8595415B2 (en) | 2011-02-02 | 2011-02-02 | At least semi-autonomous modules in a memory system and methods |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013552536A Division JP5756187B2 (ja) | 2011-02-02 | 2012-01-12 | メモリシステム内の少なくとも半自律性のモジュールおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015172965A JP2015172965A (ja) | 2015-10-01 |
JP6063995B2 true JP6063995B2 (ja) | 2017-01-18 |
Family
ID=46578360
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013552536A Expired - Fee Related JP5756187B2 (ja) | 2011-02-02 | 2012-01-12 | メモリシステム内の少なくとも半自律性のモジュールおよび方法 |
JP2015108226A Expired - Fee Related JP6063995B2 (ja) | 2011-02-02 | 2015-05-28 | メモリシステム内の少なくとも半自律性のモジュールおよび方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013552536A Expired - Fee Related JP5756187B2 (ja) | 2011-02-02 | 2012-01-12 | メモリシステム内の少なくとも半自律性のモジュールおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8595415B2 (ja) |
EP (1) | EP2671159B1 (ja) |
JP (2) | JP5756187B2 (ja) |
KR (1) | KR101577512B1 (ja) |
CN (1) | CN103339617B (ja) |
TW (1) | TWI588651B (ja) |
WO (1) | WO2012106085A2 (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189385B2 (en) * | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
US8615703B2 (en) * | 2010-06-04 | 2013-12-24 | Micron Technology, Inc. | Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory |
US11336303B2 (en) | 2010-06-04 | 2022-05-17 | Micron Technology, Inc. | Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory |
EP2646922A4 (en) | 2010-12-01 | 2015-11-25 | Lsi Corp | DYNAMIC MANAGEMENT OF HIGHER LEVEL REDUNDANCY MODE WITH INDEPENDENT SILICON ELEMENTS |
WO2012099937A2 (en) | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
KR101861247B1 (ko) * | 2011-04-06 | 2018-05-28 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템 |
US8868854B2 (en) * | 2011-12-15 | 2014-10-21 | Lsi Corporation | Systems and methods for handling out of order reporting in a storage device |
US20130246686A1 (en) * | 2012-03-19 | 2013-09-19 | Hitachi, Ltd. | Storage system comprising nonvolatile semiconductor storage device, and storage control method |
US20140052899A1 (en) * | 2012-08-18 | 2014-02-20 | Yen Chih Nan | Memory address translation method for flash storage system |
US8910005B2 (en) | 2012-12-03 | 2014-12-09 | Lsi Corporation | Systems and methods for selective retry data retention processing |
US9190104B2 (en) | 2012-12-13 | 2015-11-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for data retry using averaging process |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
KR102050729B1 (ko) * | 2013-02-12 | 2019-12-02 | 삼성전자 주식회사 | 메모리 시스템 |
US8949696B2 (en) | 2013-02-19 | 2015-02-03 | Lsi Corporation | Systems and methods for trapping set disruption |
WO2015070110A2 (en) * | 2013-11-07 | 2015-05-14 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US9612973B2 (en) | 2013-11-09 | 2017-04-04 | Microsoft Technology Licensing, Llc | Using shared virtual memory resources for performing memory-mapping |
US9323625B2 (en) | 2013-11-12 | 2016-04-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for lost synchronization data set reprocessing |
US9385758B2 (en) | 2014-01-02 | 2016-07-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for efficient targeted symbol flipping |
US9645741B2 (en) * | 2014-02-05 | 2017-05-09 | Sandisk Technologies Llc | Storage module and host device for storage module defragmentation |
US9690489B2 (en) * | 2014-03-08 | 2017-06-27 | Storart Technology Co. Ltd. | Method for improving access performance of a non-volatile storage device |
US9454551B2 (en) * | 2014-03-13 | 2016-09-27 | NXGN Data, Inc. | System and method for management of garbage collection operation in a solid state drive |
US9710173B2 (en) | 2014-05-20 | 2017-07-18 | Micron Technology, Inc. | Read cache memory with DRAM class promotion |
US9652415B2 (en) | 2014-07-09 | 2017-05-16 | Sandisk Technologies Llc | Atomic non-volatile memory data transfer |
US9904621B2 (en) * | 2014-07-15 | 2018-02-27 | Sandisk Technologies Llc | Methods and systems for flash buffer sizing |
US9645744B2 (en) | 2014-07-22 | 2017-05-09 | Sandisk Technologies Llc | Suspending and resuming non-volatile memory operations |
US10552043B2 (en) * | 2014-09-09 | 2020-02-04 | Toshiba Memory Corporation | Memory system |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US9582201B2 (en) | 2014-09-26 | 2017-02-28 | Western Digital Technologies, Inc. | Multi-tier scheme for logical storage management |
US9952978B2 (en) | 2014-10-27 | 2018-04-24 | Sandisk Technologies, Llc | Method for improving mixed random performance in low queue depth workloads |
US9753649B2 (en) | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US11334478B2 (en) * | 2014-10-30 | 2022-05-17 | Kioxia Corporation | Memory system and nonvolatile memory medium in which program is stored to optimize operating life |
US9817752B2 (en) | 2014-11-21 | 2017-11-14 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9824007B2 (en) | 2014-11-21 | 2017-11-21 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9647697B2 (en) | 2015-03-16 | 2017-05-09 | Sandisk Technologies Llc | Method and system for determining soft information offsets |
US9652175B2 (en) | 2015-04-09 | 2017-05-16 | Sandisk Technologies Llc | Locally generating and storing RAID stripe parity with single relative memory address for storing data segments and parity in multiple non-volatile memory portions |
US10372529B2 (en) | 2015-04-20 | 2019-08-06 | Sandisk Technologies Llc | Iterative soft information correction and decoding |
US9778878B2 (en) | 2015-04-22 | 2017-10-03 | Sandisk Technologies Llc | Method and system for limiting write command execution |
US9870149B2 (en) | 2015-07-08 | 2018-01-16 | Sandisk Technologies Llc | Scheduling operations in non-volatile memory devices using preference values |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US9715939B2 (en) | 2015-08-10 | 2017-07-25 | Sandisk Technologies Llc | Low read data storage management |
JP6377584B2 (ja) * | 2015-09-02 | 2018-08-22 | 株式会社三共 | 遊技機 |
JP6700088B2 (ja) * | 2015-09-24 | 2020-05-27 | 株式会社三共 | 遊技機 |
US9952788B2 (en) * | 2015-09-29 | 2018-04-24 | Cnex Labs, Inc. | Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme |
US10228990B2 (en) | 2015-11-12 | 2019-03-12 | Sandisk Technologies Llc | Variable-term error metrics adjustment |
US10126970B2 (en) | 2015-12-11 | 2018-11-13 | Sandisk Technologies Llc | Paired metablocks in non-volatile storage device |
US9990311B2 (en) * | 2015-12-28 | 2018-06-05 | Andes Technology Corporation | Peripheral interface circuit |
US9837146B2 (en) | 2016-01-08 | 2017-12-05 | Sandisk Technologies Llc | Memory system temperature management |
US10210121B2 (en) * | 2016-01-27 | 2019-02-19 | Quanta Computer Inc. | System for switching between a single node PCIe mode and a multi-node PCIe mode |
KR102529171B1 (ko) | 2016-02-26 | 2023-05-04 | 삼성전자주식회사 | 메모리 장치 진단 시스템 |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
US9934151B2 (en) | 2016-06-28 | 2018-04-03 | Dell Products, Lp | System and method for dynamic optimization for burst and sustained performance in solid state drives |
US10481830B2 (en) | 2016-07-25 | 2019-11-19 | Sandisk Technologies Llc | Selectively throttling host reads for read disturbs in non-volatile memory system |
US10971241B2 (en) | 2017-01-30 | 2021-04-06 | Toshiba Memory Corporation | Performance based method and system for patrolling read disturb errors in a memory unit |
US11003381B2 (en) * | 2017-03-07 | 2021-05-11 | Samsung Electronics Co., Ltd. | Non-volatile memory storage device capable of self-reporting performance capabilities |
US11294594B2 (en) * | 2017-08-07 | 2022-04-05 | Kioxia Corporation | SSD architecture supporting low latency operation |
US10509722B2 (en) * | 2017-08-31 | 2019-12-17 | Micron Technology, Inc. | Memory device with dynamic cache management |
US10553285B2 (en) * | 2017-11-28 | 2020-02-04 | Western Digital Technologies, Inc. | Single-port memory with opportunistic writes |
KR102370278B1 (ko) * | 2017-11-30 | 2022-03-07 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작방법 |
CN108037725B (zh) * | 2017-12-08 | 2019-09-03 | 中冶南方工程技术有限公司 | 一种读写plc数据的方法和装置 |
KR20190075353A (ko) * | 2017-12-21 | 2019-07-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10564868B2 (en) * | 2018-01-24 | 2020-02-18 | Western Digital Technologies, Inc. | Method and apparatus for selecting power states in storage devices |
TWI670598B (zh) * | 2018-05-14 | 2019-09-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
US10747613B2 (en) | 2018-09-07 | 2020-08-18 | Toshiba Memory Corporation | Pooled frontline ECC decoders in memory systems |
CN110119132B (zh) * | 2019-04-09 | 2023-01-24 | 吴怡文 | 一种控制器实现功能设定多样化的方法和系统 |
US11366976B2 (en) * | 2019-05-09 | 2022-06-21 | Micron Technology, Inc. | Updating manufactured product life cycle data in a database based on scanning of encoded images |
JP7214758B2 (ja) | 2019-11-15 | 2023-01-30 | キオクシア株式会社 | ストレージデバイスおよびストレージシステム |
US11487544B2 (en) | 2020-01-15 | 2022-11-01 | Western Digital Technologies, Inc. | Method and device for simultaneously decoding data in parallel to improve quality of service |
US12009034B2 (en) * | 2020-03-02 | 2024-06-11 | Micron Technology, Inc. | Classification of error rate of data retrieved from memory cells |
US11740970B2 (en) | 2020-03-02 | 2023-08-29 | Micron Technology, Inc. | Dynamic adjustment of data integrity operations of a memory system based on error rate classification |
US11221800B2 (en) | 2020-03-02 | 2022-01-11 | Micron Technology, Inc. | Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells |
US11086572B1 (en) | 2020-03-02 | 2021-08-10 | Micron Technology, Inc. | Self adapting iterative read calibration to retrieve data from memory cells |
US11029890B1 (en) | 2020-03-02 | 2021-06-08 | Micron Technology, Inc. | Compound feature generation in classification of error rate of data retrieved from memory cells |
US11257546B2 (en) | 2020-05-07 | 2022-02-22 | Micron Technology, Inc. | Reading of soft bits and hard bits from memory cells |
US11562793B2 (en) | 2020-05-07 | 2023-01-24 | Micron Technology, Inc. | Read soft bits through boosted modulation following reading hard bits |
US11081200B1 (en) | 2020-05-07 | 2021-08-03 | Micron Technology, Inc. | Intelligent proactive responses to operations to read data from memory cells |
US11693798B2 (en) | 2020-07-10 | 2023-07-04 | Samsung Electronics Co., Ltd. | Layered ready status reporting structure |
US11567831B2 (en) | 2020-07-28 | 2023-01-31 | Micron Technology, Inc. | Generating a protected and balanced codeword |
US11237906B1 (en) | 2020-07-28 | 2022-02-01 | Micron Technology, Inc. | Generating a balanced codeword protected by an error correction code |
US11494264B2 (en) | 2020-07-28 | 2022-11-08 | Micron Technology, Inc. | Generating a protected and balanced codeword |
US11556272B2 (en) * | 2020-09-18 | 2023-01-17 | Kioxia Corporation | System and method for NAND multi-plane and multi-die status signaling |
US11947806B2 (en) | 2020-11-03 | 2024-04-02 | Micron Technology, Inc. | Life expectancy monitoring for memory devices |
US11507296B2 (en) | 2021-03-10 | 2022-11-22 | Micron Technology, Inc. | Repair operation techniques |
US11622135B2 (en) * | 2021-06-23 | 2023-04-04 | Synamedia Limited | Bandwidth allocation for low latency content and buffered content |
US11907080B1 (en) | 2022-10-20 | 2024-02-20 | Dell Products L.P. | Background-operation-based autonomous compute storage device system |
US11983409B1 (en) | 2022-10-20 | 2024-05-14 | Dell Products L.P. | Host-read-based autonomous compute storage device system |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0950398A (ja) * | 1995-08-10 | 1997-02-18 | Fuji Xerox Co Ltd | 記憶装置 |
US7007130B1 (en) * | 1998-02-13 | 2006-02-28 | Intel Corporation | Memory system including a memory module having a memory module controller interfacing between a system memory controller and memory devices of the memory module |
DE69836437T2 (de) * | 1997-12-05 | 2007-09-27 | Intel Corporation, Santa Clara | Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein |
US7024518B2 (en) * | 1998-02-13 | 2006-04-04 | Intel Corporation | Dual-port buffer-to-memory interface |
US6968419B1 (en) * | 1998-02-13 | 2005-11-22 | Intel Corporation | Memory module having a memory module controller controlling memory transactions for a plurality of memory devices |
US6970968B1 (en) * | 1998-02-13 | 2005-11-29 | Intel Corporation | Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module |
US8452912B2 (en) * | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
US6684289B1 (en) * | 2000-11-22 | 2004-01-27 | Sandisk Corporation | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
US20050138267A1 (en) * | 2003-12-23 | 2005-06-23 | Bains Kuljit S. | Integral memory buffer and serial presence detect capability for fully-buffered memory modules |
US7328309B2 (en) | 2004-10-14 | 2008-02-05 | International Business Machines Corporation | On-demand cache memory for storage subsystems |
US7421598B2 (en) | 2005-02-09 | 2008-09-02 | International Business Machines Corporation | Dynamic power management via DIMM read operation limiter |
US7193898B2 (en) * | 2005-06-20 | 2007-03-20 | Sandisk Corporation | Compensation currents in non-volatile memory read operations |
TWI303828B (en) * | 2006-03-03 | 2008-12-01 | Winbond Electronics Corp | A method and a system for erasing a nonvolatile memory |
JP2008117195A (ja) * | 2006-11-06 | 2008-05-22 | Hitachi Ltd | 半導体記憶装置 |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US7694099B2 (en) * | 2007-01-16 | 2010-04-06 | Advanced Risc Mach Ltd | Memory controller having an interface for providing a connection to a plurality of memory devices |
KR100823171B1 (ko) | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
US20090063895A1 (en) * | 2007-09-04 | 2009-03-05 | Kurt Smith | Scaleable and maintainable solid state drive |
TWI376603B (en) * | 2007-09-21 | 2012-11-11 | Phison Electronics Corp | Solid state disk storage system with a parallel accessing architecture and a solid state disk controller |
US8131912B2 (en) * | 2007-09-27 | 2012-03-06 | Kabushiki Kaisha Toshiba | Memory system |
US20100017650A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
US8412880B2 (en) | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
US8250282B2 (en) * | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US9123409B2 (en) * | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
WO2011010344A1 (ja) * | 2009-07-22 | 2011-01-27 | 株式会社日立製作所 | 複数のフラッシュパッケージを有するストレージシステム |
US8364929B2 (en) * | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
-
2011
- 2011-02-02 US US13/019,977 patent/US8595415B2/en active Active
-
2012
- 2012-01-12 CN CN201280007135.XA patent/CN103339617B/zh active Active
- 2012-01-12 WO PCT/US2012/021093 patent/WO2012106085A2/en active Application Filing
- 2012-01-12 KR KR1020137022158A patent/KR101577512B1/ko active IP Right Grant
- 2012-01-12 JP JP2013552536A patent/JP5756187B2/ja not_active Expired - Fee Related
- 2012-01-12 EP EP12742206.1A patent/EP2671159B1/en active Active
- 2012-02-02 TW TW101103423A patent/TWI588651B/zh not_active IP Right Cessation
-
2015
- 2015-05-28 JP JP2015108226A patent/JP6063995B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TWI588651B (zh) | 2017-06-21 |
JP2015172965A (ja) | 2015-10-01 |
EP2671159B1 (en) | 2019-08-28 |
WO2012106085A2 (en) | 2012-08-09 |
JP2014507724A (ja) | 2014-03-27 |
CN103339617B (zh) | 2017-06-23 |
EP2671159A4 (en) | 2014-07-30 |
CN103339617A (zh) | 2013-10-02 |
TW201237623A (en) | 2012-09-16 |
EP2671159A2 (en) | 2013-12-11 |
KR20130121165A (ko) | 2013-11-05 |
KR101577512B1 (ko) | 2015-12-14 |
JP5756187B2 (ja) | 2015-07-29 |
US20120198129A1 (en) | 2012-08-02 |
WO2012106085A3 (en) | 2012-10-11 |
US8595415B2 (en) | 2013-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6063995B2 (ja) | メモリシステム内の少なくとも半自律性のモジュールおよび方法 | |
JP5894192B2 (ja) | ブロックオリエンテッド不揮発性メモリにアクセスするための制御配置構成および方法 | |
US10802733B2 (en) | Methods and apparatus for configuring storage tiers within SSDs | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
US11061593B2 (en) | Memory system and operation method for determining availability based on block status | |
JP7513356B2 (ja) | 不揮発性メモリにおける摩耗を意識したブロック・モード変換 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
US10642525B2 (en) | Multiple-stage data lifetime management for storage devices | |
CN118092807A (zh) | 缓存空间调配方法及存储器存储装置 | |
TWI596477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN110364207B (zh) | 解码方法以及储存控制器 | |
CN117573208B (zh) | 指令信息分配方法及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160712 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160824 |
|
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: 20161213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6063995 Country of ref document: JP 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 |
|
LAPS | Cancellation because of no payment of annual fees |