JP2014241158A - メモリの複数のブロックの寿命の向上 - Google Patents

メモリの複数のブロックの寿命の向上 Download PDF

Info

Publication number
JP2014241158A
JP2014241158A JP2014168546A JP2014168546A JP2014241158A JP 2014241158 A JP2014241158 A JP 2014241158A JP 2014168546 A JP2014168546 A JP 2014168546A JP 2014168546 A JP2014168546 A JP 2014168546A JP 2014241158 A JP2014241158 A JP 2014241158A
Authority
JP
Japan
Prior art keywords
blocks
block
memory
score
factors includes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014168546A
Other languages
English (en)
Inventor
ラドスラヴ ダニラック,
Danilak Radoslav
ラドスラヴ ダニラック,
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.)
LSI Corp
Original Assignee
LSI 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 LSI Corp filed Critical LSI Corp
Publication of JP2014241158A publication Critical patent/JP2014241158A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/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/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/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards

Landscapes

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

Abstract

【課題】メモリの複数のブロックの寿命を向上させるシステム、方法、及びコンピュータプログラム製品を提供する。【解決手段】動作の際に、メモリの複数のブロックの寿命に影響を及ぼす少なくとも1つの因子を識別する102。さらに、その少なくとも1つの因子に基づいて、書き込むための複数のブロックを選択する104。【選択図】図1

Description

[0001]本発明はメモリに関し、より詳細には、有限の寿命を有するメモリに関する。
[0002]メモリは、現代の企業コンピューティングシステムの性能の最も制限的な側面の1つである。メモリの1つの制限的な側面は、多くのタイプのメモリが限られた寿命を示すことである。例えば、フラッシュなどの不揮発性メモリの寿命は、消去され、再書込みされるごとに低下する。時間の経過、並びに数千回の消去及び再書込みに伴い、そのようなフラッシュメモリの信頼性が次第に低下する可能性がある。
[0003]メモリ寿命の低下を低減する1つの一般的な従来技術の技法は、ウェアレベリングである。ウェアレベリングは、記憶装置内の各ブロックを概ね等しい回数だけ消去し、書き込むことを可能にする。これにより、あるブロックがより頻繁に使用され、寿命の終わりに達し、使用を中止しなければならない状況が回避される。この手法は、装置全体の記憶容量を低下させる。記憶装置は予備ブロックを有しているかもしれないが、予備ブロックは使い果たされ、装置の記憶容量が低下して、記憶装置を使用できなくなる。
[0004]メモリベンダはしばしば、一定の割合のメモリの寿命期待値を保証する。例えば、フラッシュメモリベンダは、100000回のプログラム及び消去サイクルの後に(すなわち耐久性)、誤り訂正要件の超過に基づいて使用不能となるブロックが1%未満であることを保証するかもしれない。この場合、誤り訂正条件は、フラッシュ装置について512バイト当たり1ビットの誤りを訂正するように設定されるかもしれない。最近開発された装置には、ずっと低い耐久性を有するものもある。こうした装置は、より大きい誤り訂正条件を必要とする。
[0005]さらに、メモリブロックの寿命は互いに異なることがある。したがって、プログラム消去サイクルの数が平準化されるウェアレベリングを使用すると、記憶装置は、指定の割合のブロック(例えば1%)だけが不良となったときに寿命の終わりに達することがある。しかし、記憶装置に含まれる大部分のブロックがまだ動作可能な場合がある。
[0006]したがって、こうした問題及び/又は従来技術に関連する他の問題に対処することが求められている。
[0007]メモリの複数のブロックの寿命を向上させるシステム、方法、及びコンピュータプログラム製品を提供する。動作の際に、メモリの複数のブロックの寿命に影響を及ぼす少なくとも1つの因子を特定する。さらに、その少なくとも1つの因子に基づいて、書込み用の複数のブロックを選択する。
一実施形態による、メモリの複数のブロックの寿命を向上させる方法を示す図である。 別の実施形態による、メモリの複数のブロックの寿命を向上させる技法を示す図である。 別の実施形態による、メモリの複数のブロックの寿命を向上させる方法を示す図である。 一実施形態による、書込み頻度に基づいて相異なる記憶装置にデータを書き込む方法を示す図である。 様々な従来の実施形態の様々なアーキテクチャ及び/又は機能を実装することのできる例示的システムを示す図である。
[0013]図1は、一実施形態による、メモリの複数のブロックの寿命を向上させる方法100を示す。図示するように、メモリの複数のブロックの寿命に影響を及ぼす少なくとも1つの因子を特定する。工程102を参照されたい。さらに、その少なくとも1つの因子に基づいて、書込み用の複数のブロックを選択する。工程104を参照されたい。
[0014]この説明の状況では、メモリの寿命は、メモリが任意の所望の程度のユーザビリティを示す任意の期間を含んでもよい。例えば、様々な実施形態では、そのような寿命は、全く限定はしないが、希望寿命、実寿命、推定寿命などを含んでもよい。さらに、ユーザビリティの程度は、依然として動作可能な構成要素(例えば、ブロック、セルなど)の割合、メモリ又はその構成要素の信頼性、並びに/或いはそれに関する任意の他のパラメータなどの任意のユーザビリティ関連パラメータを指してもよい。
[0015]さらに、様々な実施形態では、メモリは、限定はしないが、機械式記憶装置(例えばディスクドライブなど)、固体記憶装置(例えば、ダイナミックランダムアクセスメモリ(DRAM)、フラッシュメモリなど)、及び/又は任意の他の記憶装置を含んでもよい。メモリがフラッシュメモリを含む場合、フラッシュメモリは、限定はしないが、シングルレベルセル(SLC)装置、マルチレベルセル(MLC)装置、NORフラッシュメモリ、NANDフラッシュメモリ、MLC NANDフラッシュメモリ、SLC NANDフラッシュメモリなどを含んでもよい。一実施形態では、不揮発性メモリ装置は、セル当たり単一ビットNORフラッシュメモリ、セル当たり多ビットNORフラッシュメモリ、セル当たり単一ビットNANDフラッシュメモリ、及びセル当たり多ビットNANDフラッシュメモリのうちの少なくとも1つを含んでもよい。
[0016]さらに、この説明の状況では、因子は、メモリブロックの寿命に直接的又は間接的に影響を及ぼす可能性のある任意の因子を含んでもよい。例えば、様々な実施形態では、因子は、限定はしないが、メモリのブロックのうちの少なくとも1つに関係する読出し操作中の誤り(例えば、検出済み誤り、訂正済み誤りなど)の数、メモリのブロックのうちの少なくとも1つに関係するプログラム操作と読出し操作との間の期間、メモリのブロックのうちの少なくとも1つを消去する回数、メモリのブロックのうちの少なくとも1つを消去するのに必要な期間、メモリのブロックのうちの少なくとも1つをプログラムするのに必要な期間、メモリのブロックのうちの少なくとも1つをプログラムするのに必要な再試行の数、メモリのブロックのうちの少なくとも1つの1ページの介在読出しの数、隣接するページでの介在読出しの数、メモリの構造及び編成、並びに/或いは上記の定義を満たす任意の他の因子を含むことができる。一つの選択肢として、メモリのブロックの使用履歴を記憶してもよい。この場合、使用履歴を使用して、因子を決定してもよい。
[0017]次に、ユーザの要望に従って上記のフレームワークがそれと共に実装されることがあり、又は実装されないことのある様々な任意選択のアーキテクチャ及び機能に関するより例示的な情報を説明する。以下の情報は、例示のために説明されるものであり、いかなる形でも限定として解釈されるべきでないことに強く留意されたい。以下の機能のいずれかを、説明される他の機能を除外して、又は除外することなく任意選択的に組み込んでよい。
[0018]図2は、別の実施形態による、メモリの複数のブロックの寿命を向上させる技法200を示す。一つの選択肢として、この技法200は、図1の詳細の状況で実装することができる。しかし、もちろん技法200は任意の所望の環境で実装することができる。上述の定義は、この説明を通じて適用することができることにも留意されたい。
[0019]図示するように、複数のメモリブロック204の耐久性202を監視してもよい。この場合、図2の棒は、特定のブロック204についての書込み数を表す。この説明の状況では、耐久性202は、各メモリブロック204についての書込み及び消去サイクルの数を指す。したがって、耐久性202は、メモリブロック204の使用量に対応する。一実施形態では、書込み及び/又は消去の数を監視及び記録してもよい。
[0020]ブロック204の書込み数を監視することにより、どのブロックがより頻繁に使用されたかを判断してもよい。一実施形態では、監視を使用して、ブロック204のいずれかについての書込み数がしきい値206を超えたかどうかを判断してもよい。さらに、そのような監視によって使用量を均一化し、それによって、あるブロックについての書込み数がしきい値206に達したときに、しきい値206未満の他のブロックを書込みのために使用できるようにしてもよい。例えば、ブロックが書込み及び再利用(リサイクル)される順序を変更して、ブロック間の耐久性値の差を最小限に抑えてもよい。
[0021]動作の際に、メモリの複数のブロック204の寿命に影響を及ぼす少なくとも1つの因子を特定及び/又は監視してもよい。その場合、その少なくとも1つの因子に基づいて、書き込み用の複数のブロックを選択してもよい。様々な実施形態では、寿命の観点からブロック204の状態を示す複数の因子が存在してもよい。一実施形態では、因子は、各ブロック204に関連する訂正済み誤りの数を含んでいてもよい。そのような訂正済み誤りは、例えばデータの読出しに対応していてもよい。
[0022]様々なケースでは、因子は、複数の別の因子の影響を受けることがある。例えば、訂正済み誤りの数は、プログラム操作から読出しまでどれだけの時間が経過したか、及び読出しを何回実行したかに影響を受けることがある。さらに、ブロックを消去及びプログラムする回数も、訂正済み誤りの数に影響を与えることがある。
[0023]もちろん、他の多数の因子も、訂正した誤りの数に影響を及ぼすことがある。様々な実施形態では、因子は、ブロック204の使用の期間、書込みの頻度、操作率、操作の総許容数、及び寿命の期間などに対応していてもよい。もちろん、このような例示的態様は例示のために説明したに過ぎない。因子は、メモリのブロックの寿命期待値に影響を及ぼす可能性のある任意の特徴に対応してよいからである。
[0024]一実施形態では、スコアを使用して、ブロック204が書き込み及び再利用される順序を変更するかどうかを判断してもよい。例えば、各ブロック204は、少なくとも1つの因子に基づく、対応するスコア関数を有していてもよい。スコア関数を使用して、各ブロック204についてのスコアを求めてもよい。
[0025]このスコアを使用して、ブロック204のスコア関数間の値の差を最小限に抑えてもよい。1つの選択肢として、スコアは、ブロック204の寿命に影響を及ぼす1つの因子に基づいていてもよい。別の選択肢として、スコアは、ブロック204の寿命に影響を及ぼす複数の因子に基づいていてもよい。
[0026]例えば、2つのメモリブロックの場合、一方のメモリブロックがしきい値206を超えるスコアを有することがあり、一方がしきい値206未満のスコアを有することがある。この場合、各スコアは、ブロックの寿命に影響を及ぼす少なくとも1つの因子に対応していてよい。スコアは、上記のように任意の数の因子に対応していてよいことに留意されたい。
[0027]一実施形態では、スコアは、ブロックの寿命期待値に関する少なくとも1つの因子に対応する値を示してもよい。この場合、値の差は、ブロックの寿命期待値の差を反映してもよい。こうして、2つのブロックを均一化することができる。
[0028]一実施形態では、均一化は、しきい値206未満のブロックを使用する(例えば書き込む)と共に、しきい値206を超えるブロックを使用しないことを含んでもよい。このことを、2つのブロックが等しい値、又はほぼ等しい値に対応する時点まで行ってもよい。その時点になったら、しきい値206を上げて、両方のメモリブロックを使用してもよい。
[0029]当初、すべてのブロック204はしきい値206未満でもよい。あるブロックがしきい値206を超過したら、そのブロックを、しきい値206を超えたブロックとしてラベル付けし、或いは他の方法で特定してもよい。その場合、しきい値206未満のブロック204がしきい値206に達し、又はしきい値206を超過するまで、しきい値206未満のブロック204を使用してもよい。
[0030]このことを、しきい値206未満のすべてのブロック204が使い果たされるまで続行してもよい。使い果たされた時点で、すべての既存のブロック204が新しいしきい値未満となるように新しいしきい値を設定してもよい。このことを、ブロック204の寿命全体を通して反復してもよい。
[0031]1つの選択肢として、消去され書込みされるブロック204の総量を最小限に抑えるために、ブロック204間のばらつきが均一化される間、あるカウント割合の空きスペースを利用してもよい。さらに、様々な他の技法を使用して、ブロック間のばらつきを均一化(すなわちブロック再生)すると共に、消去及び書込みされるブロックの総量を最小限に抑えてもよい。さらに、様々な他の均一化技法を使用してブロック204間のばらつきを均一化してもよい。
[0032]一実施形態では、システムで複数のメモリモジュールを使用してもよい。この場合、メモリモジュールは、相異なる寿命を有するメモリモジュールを含むことができる。したがって、システムの全メモリ寿命は、最小の寿命を有するメモリモジュールに限定されるのではなく、最大でメモリの寿命の合計であってもよい。
[0033]一実施形態では、寿命推定器モジュールが、記憶バスを介してシステムのコントローラに通信されたコマンドを受け取るように動作してもよい。寿命推定器モジュールは、バスを介して受け取ったコマンドが実行されたと仮定して、推定寿命を計算してもよい。一実施形態では、寿命推定器を使用して、メモリブロック204の寿命に影響を及ぼす書込み数及び/又は他の因子を監視してもよい。厳密に任意選択として、寿命推定器モジュールを使用してしきい値206を設定してもよい。
[0034]もちろん、様々な技法を使用してしきい値206を設定してもよい。一実施形態では、しきい値206は所定のしきい値でよい。別の実施形態では、しきい値206を動的に設定してもよい。1つの選択肢として、しきい値は、メモリブロック206のうちの少なくとも1つに関連する装置の寿命(例えば期待寿命、希望寿命など)に直接的に相関してもよい。
[0035]一実施形態では、コストを削減し、性能を改善するために、記憶装置内冗長機能を使用してもよい。そのような実施形態では、個々の記憶装置間で、記憶装置の寿命に関連する任意の因子に基づいてデータを移動してもよい。例えば、状況が、記憶装置のうちの第1の記憶装置が1組のデータを含み、その1組のデータが記憶装置のうちの第2の記憶装置のデータに対してより頻繁に上書きされることを含んでもよい。そのような場合、寿命に関連する少なくとも1つの因子のしきい値を超過した後は、そのようなデータを第1記憶装置から第2記憶装置に移動し、それ以降は、第1記憶装置又は第1記憶装置の1つ又は複数のブロック/モジュールを、あまり頻繁に書き込まれないデータを格納するために使用してもよいし、あるいは今後使用しないようにしてもよい。
[0036]この目的のため、記憶装置寿命を適切に分散させて、ある記憶装置又は記憶装置の一部がグループの他の記憶装置に比べて非常に早い時点で故障することを回避してもよい。もちろん、この技法は、相異なる記憶装置の間だけでなく、記憶装置の各部分の間でも適用してもよい。この目的で、任意のメモリ構成要素の寿命をそのような方式で管理してもよい。
[0037]図3は、別の実施形態による、メモリの複数のブロックの寿命を向上させる方法300を示す。1つの選択肢として、この方法300は、図1〜2の機能の状況で実施することができる。しかし、もちろん方法300は任意の所望の環境で実施してもよい。上述の定義は、本説明を通じて適用することができることにも留意されたい。
[0038]図示するように、メモリのすべてのブロックがしきい値未満となるようにしきい値を定義する。工程302を参照されたい。一実施形態では、しきい値は、ブロックの使用量に対応していてもよい。例えば、ブロックが使用されるにつれて、それらのブロックに関連する使用量の値が、しきい値に近づいてもよい。別の実施形態では、しきい値は、ブロックのセットの寿命期待値に関連する少なくとも1つの他の因子に対応してもよい。
[0039]例えば、しきい値は、ブロックに関する訂正済み誤りの数に対応していてもよい。この場合、複数のブロックが使用されるにつれて、それらのブロックに関連する訂正済み誤りの数の値がしきい値に近づいてもよい。もちろん、しきい値は、ブロックの寿命に影響を及ぼす任意の数の因子に対応していてもよい。
[0040]各ブロックが下回る初期しきい値が特定されると、ブロックを再生(reclaim)する必要があるかどうかを判断する。工程304を参照されたい。例えば、ブロック又はブロックのグループがしきい値を超えており、又は他のブロックに対して不均衡に使用されていることを因子が示す場合に、1つ又は複数のブロックを再生する必要があると判断してもよい。
[0041]この説明の状況では、ブロック再生(block reclaiming)は、ガーベッジコレクション、読出し妨害、スクラビング、訂正済み誤りの数、又は他のイベントでトリガすることができ、少なくとも1つの因子に基づいてブロック間のばらつきを均一化することを指す。例えば、様々な実施形態では、ブロック再生は、読出し/書込み中に検出された誤りの数、読出し/書込み中に訂正された誤りの数、ブロックを消去するための時間の長さ、ブロックをプログラムするための時間の長さ、プログラミング中に使用されるエントリの数、ページの介在読出しの数、隣接するページでの介在読出しの数、ブロックの消去及びプログラムサイクルの数、及び/又は任意の他の因子に基づいてブロック間のばらつきを均一化することを含んでよい。
[0042]ブロックを再生する必要があると判断した場合、しきい値未満のブロックセット内のブロックを書込みのために割り振る。工程306を参照されたい。例えば、しきい値を超えるブロックセット内のブロック(複数可)ではなく、しきい値未満のブロックをメモリ操作で使用してもよい。
[0043]しきい値未満のブロックセット内のブロック(複数可)を書込みのために割り振った後は、しきい値を超えるブロックがあるかどうかを判断する。工程308を参照されたい。例えば、ブロックがしきい値を超過すると判断するまで、しきい値未満のブロックセット内のブロックに書込みを行ってもよい。
[0044]ブロックがしきい値を超過したと判断した場合、しきい値を超えるブロックに対応するブロックのセット内にブロックを配置してもよい。工程310を参照されたい。ブロックがしきい値を超過していない場合、ブロックは、しきい値未満のブロックセット内にとどまることができ、引き続き使用することができる。
[0045]次いで、しきい値未満のブロックのすべてが使い果たされたかどうかを判断する。工程312を参照されたい。言い換えれば、しきい値未満のブロックに対応するブロックのセット内のすべてのブロックが、しきい値を超えるブロックに対応するブロックのセットに含まれているかどうかを判断する。
[0046]しきい値未満のすべてのブロックが使い果たされた場合、新しいしきい値を設定し、すべての既存のブロックをその新しいしきい値未満となるように定義する。工程314を参照されたい。新しいしきい値を設定した後は、ブロックを再生する必要があるかどうかを再び判断する。1つの選択肢として、これをメモリブロックの寿命にわたって続行してもよい。
[0047]新しいしきい値及び初期しきい値は、様々な基準に基づいて設定できることに留意されたい。例えば、しきい値は、ブロックの予想使用量に基づいて設定してもよい。一実施形態では、しきい値は所定のしきい値でもよい。別の実施形態では、しきい値は、メモリブロック使用量に基づいて決定してもよい。
[0048]図4は、一実施形態による、書込み頻度に基づいて様々な記憶装置にデータを書き込む方法400を示す。1つの選択肢として、この方法400は、図1〜3の機能及びアーキテクチャの状況で実施することができる。しかし、もちろん方法400は任意の所望の環境で実装することができる。上述の定義は、本説明を通じて適用することができることにも留意されたい。
[0049]図示するように、データが書き込まれる頻度を特定する。工程402を参照されたい。さらに、頻度に基づいて、データを書き込むために相異なるタイプの複数の記憶装置から選択を行う。工程404を参照されたい。
[0050]一実施形態では、選択はしきい値に基づいてもよい。例えば、データが書き込まれる頻度がしきい値を超過する場合、一定の記憶装置を選択してデータを書き込んでもよい。1つの選択肢として、この相異なるタイプの記憶装置は、SLC及びMLC装置、相異なる耐久性を有するMLC同士、SLC及びDRAM、並びにMLC及びDRAMを含んでもよい。もちろん、様々な別の実施形態では、この相異なるタイプの記憶装置は、様々な異なるタイプのメモリを含む任意の数の装置を含んでもよい。
[0051]別の実施形態では、少なくとも2つの異なるタイプのメモリを1つの装置に集積することができる。例えば、フラッシュMLC及びSLCメモリを1つの装置上で組み合わせることができる。別の例として、2つの異なるタイプのフラッシュMLCを1つの装置に集積することができる。さらに別の例として、1つの装置でのメモリタイプの混合をプログラム的に定めてもよい。一例では、SLCフラッシュメモリに関連する記憶装置の一部を定め、MLCフラッシュメモリに関連する記憶装置の一部を定めてもよい。
[0052]特定の例として、特定のアプリケーション又はプログラムからのデータが高頻度で書き込まれると判断してもよい。この場合、SLC装置を選択してデータを書き込んでもよい。一方、特定のアプリケーション又はプログラムからのデータ、或いはディスクの特定の場所からのデータ、或いは特定のアクセスパターンからのデータが低頻度で書き込まれると判断してもよい。この場合、MLC装置を選択してデータを書き込んでもよい。もちろん、特定した頻度に基づいて任意の数の装置を選択してよいので、これは一例に過ぎない。
[0053]一実施形態では、寿命推定器モジュールは、記憶バスを介してシステムのコントローラに伝達されたコマンドを受け取るように働いてもよい。寿命推定器モジュールは、頻度を監視するとともに、バスを介して受け取ったコマンド(複数可)が実行されたと仮定して、推定寿命を計算してもよい。もちろん、頻度は様々な方式で求めることができ、寿命推定器モジュールで特定されるものに限定されない。
[0054]様々な実施形態では、上記の実施形態で述べたメモリは、機械式記憶装置(例えば、SATAディスクドライブ、SASディスクドライブ、ファイバチャネルディスクドライブ、IDEディスクドライブ、ATAディスクドライブ、CEディスクドライブ、USBディスクドライブ、スマートカードディスクドライブ、MMCディスクドライブなどを含むディスクドライブ)及び/又は非機械式記憶装置(例えば半導体ベースの記憶装置など)を含んでよいことに留意されたい。そのような非機械式メモリは、例えば揮発性又は不揮発性メモリを含んでよい。様々な実施形態では、不揮発性メモリ装置は、フラッシュメモリ(例えば、セル当たり単一ビットNORフラッシュメモリ、セル当たり多ビットNORフラッシュメモリ、セル当たり単一ビットNANDフラッシュメモリ、セル当たり多ビットNANDフラッシュメモリ、マルチレベル及び/又はセル当たり多ビットNANDフラッシュ、大規模ブロックフラッシュメモリ、抵抗型メモリ、相変化メモリ、磁気メモリなど)を含んでよい。メモリの様々な例を本明細書で述べたが、メモリに対して実施される様々な操作のために寿命が低下する可能性のある任意のタイプのメモリに様々な原理を適用することができることに留意されたい。
[0055]図5は、先の様々な実施形態の様々なアーキテクチャ及び/又は機能を実装することのできる例示的システム500を示す。例えば、例示的システム500は、先の実施形態のうちのいくつかで述べたコンピュータを表してもよい。さらに、上述の様々な装置は、システム500の構成要素でもよい。
[0056]図示するように、通信バス502に接続される少なくとも1つのホストプロセッサ501を含むシステム500が設けられる。システム500はまた、メインメモリ504をも含む。制御ロジック(ソフトウェア)及びデータがメインメモリ504内に格納され、メインメモリ504は、ランダムアクセスメモリ(RAM)の形態を取ってもよい。
[0057]システム500はまた、グラフィックスプロセッサ506、及びディスプレイ508すなわちコンピュータモニタをも含むことができる。システム500はまた、2次ストレージ510をも含むことができる。2次ストレージ510は、例えばハードディスクドライブ、及び/又はフロッピィディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表す取外し可能ストレージドライブを含む。取外し可能ストレージドライブは、周知の方式で取外し可能ストレージモジュールから読み取り、及び/又は取外し可能ストレージモジュールに書き込む。
[0058]コンピュータプログラム、又はコンピュータ制御論理アルゴリズムは、メインメモリ504及び/又は2次ストレージ510内に格納されてもよい。そのようなコンピュータプログラムは、実行されたときに、システム500が様々な機能を実施することを可能にする。メモリ504、ストレージ510、及び/又は任意の他のストレージが、コンピュータ可読媒体の可能な例である。
[0059]一実施形態では、先の様々な図のアーキテクチャ及び/又は機能は、ホストプロセッサ501、グラフィックスプロセッサ506、2次ストレージ510、ホストプロセッサ501とグラフィックスプロセッサ506の両方の機能の少なくとも一部が可能な集積回路(図示せず)、チップセット(すなわち、関連機能を実施するためのモジュールとして機能するように設計され、販売される一群の集積回路など)、及び/又はそれに関する任意の他の集積回路の状況で実装することができる。
[0060]さらに、先の様々な図のアーキテクチャ及び/又は機能は、一般的コンピュータシステム、回路板システム、エンターテイメント目的専用のゲームコンソールシステム、特定用途向けシステム、及び/又は任意の他の所望のシステムの状況で実装することができる。例えば、システム500は、デスクトップコンピュータ、ラップトップコンピュータ、及び/又は任意の他のタイプの論理機構の形態を取ることができる。さらに、システム500は、限定はしないが携帯情報端末(PDA)装置、携帯電話装置、テレビジョンなどを含む様々な他の装置の形態を取ることができる。
[0061]さらに、図示していないが、通信のためにシステム500をネットワーク[例えば、遠隔通信ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、インターネットなどの広域ネットワーク(WAN)、ピアツーピアネットワーク、ケーブルネットワークなど]に接続してもよい。
[0062]様々な実施形態を上記で説明したが、それらは限定としてではなく、例示として提示したものであることを理解されたい。したがって、好ましい実施形態の広さ及び範囲は、上述の例示的実施形態のいずれによっても限定されず、以下の特許請求の範囲及びその均等物だけに従って定義されるものとする。

Claims (29)

  1. メモリの複数のブロックの各々についての寿命期待値スコアを、前記ブロックの寿命に影響を及ぼす複数の因子に基づいて計算するステップと、
    前記寿命期待値スコアの少なくとも一部に少なくとも部分的に基づいて、前記ブロックの書込み及び再利用の順序を決定するステップとを含み、
    前記ブロック間の寿命期待値スコアのばらつきが均一化される間、消去及び書込みされる前記ブロックの総量が最小限に抑えられる、方法。
  2. 前記複数の因子が、前記ブロックの各々に関係する読出し操作中の誤りの数を含む請求項1に記載の方法。
  3. 前記誤りが、検出済みの誤りである請求項2に記載の方法。
  4. 前記誤りが、訂正済みの誤りである請求項2に記載の方法。
  5. 前記複数の因子が、前記ブロックの各々に関係するプログラム操作と読出し操作との間の期間を含む請求項1に記載の方法。
  6. 前記複数の因子が、前記ブロックの各々を消去するのに要する期間を含む請求項1に記載の方法。
  7. 前記複数の因子が、前記ブロックの各々をプログラムするのに必要な期間を含む請求項1に記載の方法。
  8. 前記複数の因子が、前記ブロックの各々をプログラムするのに必要な再試行の数を含む請求項1に記載の方法。
  9. 前記複数の因子が、前記ブロックの各々に関連するページの介在読出しの数を含む請求項1に記載の方法。
  10. 前記複数の因子が、前記ブロックの各々に関連する、隣接するページでの介在読出しの数を含む請求項1に記載の方法。
  11. 前記ブロックのうちの第1ブロック及び第2ブロックはそれぞれ、第1推定寿命及び第2推定寿命を有し、前記第1推定寿命は第2推定寿命より長く、前記第2ブロックへの書き込みよりも前に前記第1ブロックへの書き込むこと、をさらに含む、請求項1に記載の方法。
  12. 前記第2ブロックについての前記寿命期待値スコアが、寿命期待値スコアのために設定されたしきい値を超える請求項11に記載の方法。
  13. 前記第1ブロックについての寿命期待値スコアが、前記しきい値未満である請求項12に記載の方法。
  14. 前記メモリが機械式記憶装置を含む請求項1に記載の方法。
  15. 前記メモリが不揮発性メモリ装置を含む請求項1に記載の方法。
  16. 前記不揮発性メモリ装置が、セル当たり単一ビットNORフラッシュメモリ、セル当たり多ビットNORフラッシュメモリ、セル当たり単一ビットNANDフラッシュメモリ、及びセル当たり多ビットNANDフラッシュメモリのうちの少なくとも1つを含む請求項15に記載の方法。
  17. 前記複数のブロックの使用履歴を記憶するステップをさらに含む、請求項1に記載の方法。
  18. 前記複数の因子が、各ブロックが消去された回数を含む、請求項1に記載の方法。
  19. 前記複数の因子が、前記ブロックの各々の空きスペースのカウント割合を含む、請求項1に記載の方法。
  20. 命令セットが記憶された有形のコンピュータ可読媒体であって、前記命令セットが処理要素により実行されたときに、前記処理要素に、
    メモリの複数のブロックの各々についての寿命期待値スコアを、前記ブロックの寿命に影響を及ぼす複数の因子に基づいて計算するステップと、
    前記寿命期待値スコアの少なくとも一部に少なくとも部分的に基づいて、前記ブロックの書込み及び再利用の順序を決定するステップと、を実行させ、
    前記ブロック間の寿命期待値スコアのばらつきが均一化される間、消去及び書込みされる前記ブロックの総量が最小限に抑えられる、
    コンピュータ可読媒体。
  21. 前記複数の因子が、前記ブロックの各々に関係する読出し操作中の修正された誤りの数を含む、請求項20に記載のコンピュータ可読媒体。
  22. 前記複数の因子が、前記ブロックの各々に関係するプログラム操作と読出し操作との間の期間を含む、請求項20に記載のコンピュータ可読媒体。
  23. 前記複数の因子が、前記ブロックの各々を消去するのに要する期間を含む、請求項20に記載のコンピュータ可読媒体。
  24. 前記複数の因子が、前記ブロックの各々をプログラムするのに必要な期間、及び、前記ブロックの各々をプログラムするのに必要な再試行の数、のうちの一つまたは複数を含む、請求項20に記載のコンピュータ可読媒体。
  25. 前記複数の因子が、前記ブロックの各々に関連するページの介在読出しの数、及び、前記ブロックの各々に関連する、隣接するページでの介在読出しの数、のうちの一つまたは複数を含む、請求項20に記載のコンピュータ可読媒体。
  26. 前記メモリが不揮発性メモリ装置を含む、請求項20に記載のコンピュータ可読媒体。
  27. 前記不揮発性メモリ装置が、セル当たり単一ビットNORフラッシュメモリ、セル当たり多ビットNORフラッシュメモリ、セル当たり単一ビットNANDフラッシュメモリ、及びセル当たり多ビットNANDフラッシュメモリのうちの少なくとも1つを含む、請求項26に記載のコンピュータ可読媒体。
  28. メモリの複数のブロックの各々についての寿命期待値スコアを、前記ブロックの寿命に影響を及ぼす複数の因子に基づいて計算する手段と、
    前記寿命期待値スコアの少なくとも一部に少なくとも部分的に基づいて、前記ブロックの書込み及び再利用の順序を決定する手段とを備え、
    前記ブロック間の寿命期待値スコアのばらつきが均一化される間、消去及び書込みされる前記ブロックの総量が最小限に抑えられる、システム。
  29. 前記複数の因子が、前記ブロックの各々に関係する読出し操作中の修正された誤りの数を含む、請求項28に記載のシステム。
JP2014168546A 2007-11-19 2014-08-21 メモリの複数のブロックの寿命の向上 Pending JP2014241158A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/942,631 2007-11-19
US11/942,631 US7903486B2 (en) 2007-11-19 2007-11-19 System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010534015A Division JP2011503741A (ja) 2007-11-19 2008-10-23 メモリの複数のブロックの寿命の向上

Publications (1)

Publication Number Publication Date
JP2014241158A true JP2014241158A (ja) 2014-12-25

Family

ID=40641792

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010534015A Pending JP2011503741A (ja) 2007-11-19 2008-10-23 メモリの複数のブロックの寿命の向上
JP2014168546A Pending JP2014241158A (ja) 2007-11-19 2014-08-21 メモリの複数のブロックの寿命の向上

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010534015A Pending JP2011503741A (ja) 2007-11-19 2008-10-23 メモリの複数のブロックの寿命の向上

Country Status (5)

Country Link
US (10) US7903486B2 (ja)
JP (2) JP2011503741A (ja)
CN (1) CN101874240B (ja)
TW (1) TWI474335B (ja)
WO (1) WO2009067139A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170063340A (ko) * 2015-11-30 2017-06-08 삼성전자주식회사 통계적 분석을 통한 강화된 다중 스트리밍

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US9183133B2 (en) 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
US8082386B2 (en) * 2008-10-21 2011-12-20 Skymedi Corporation Method of performing wear leveling with variable threshold
KR101586047B1 (ko) * 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8438361B2 (en) * 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US8458417B2 (en) * 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US9170933B2 (en) * 2010-06-28 2015-10-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
JP2012089085A (ja) * 2010-10-22 2012-05-10 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
US10241908B2 (en) 2011-04-26 2019-03-26 Seagate Technology Llc Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage
KR101861184B1 (ko) 2011-11-02 2018-05-28 삼성전자주식회사 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치
KR20130061967A (ko) * 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
TWI455140B (zh) * 2012-02-21 2014-10-01 Fluiditech Ip Ltd Flash memory usage period assessment method
US11232093B2 (en) * 2012-03-02 2022-01-25 Pure Storage, Inc. Slice migration in a dispersed storage network
US20130262942A1 (en) * 2012-03-27 2013-10-03 Yung-Chiang Chu Flash memory lifetime evaluation method
CN102915764A (zh) * 2012-09-04 2013-02-06 邹粤林 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器
US9329948B2 (en) 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102089532B1 (ko) 2013-02-06 2020-03-16 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법
CN104008061B (zh) * 2013-02-22 2018-01-23 华为技术有限公司 内存回收方法及装置
US8976589B2 (en) 2013-03-14 2015-03-10 Kabushiki Kaisha Toshiba Storage device
GB2514354A (en) * 2013-05-20 2014-11-26 Ibm Managing storage devices having a lifetime of a finite number of operations
US9501393B2 (en) 2014-01-27 2016-11-22 Western Digital Technologies, Inc. Data storage system garbage collection based on at least one attribute
CN104866429B (zh) * 2014-02-26 2018-02-02 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
US9348520B2 (en) 2014-03-24 2016-05-24 Western Digital Technologies, Inc. Lifetime extension of non-volatile semiconductor memory for data storage device
US9690696B1 (en) 2014-05-14 2017-06-27 Western Digital Technologies, Inc. Lifetime extension of memory for data storage system
KR102291507B1 (ko) 2014-05-20 2021-08-20 삼성전자주식회사 메모리 컨트롤러의 동작 방법
KR102318561B1 (ko) 2014-08-19 2021-11-01 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법
US9251909B1 (en) 2014-09-29 2016-02-02 International Business Machines Corporation Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory
CN104317671A (zh) * 2014-10-24 2015-01-28 杭州帅锐电子科技有限公司 一种提升非易失存储使用寿命的掉电数据保存恢复算法
CN104376875B (zh) * 2014-11-19 2017-09-05 华为数字技术(苏州)有限公司 存储设备寿命预测、确定方法及装置
US9372628B1 (en) 2015-01-23 2016-06-21 International Business Machines Corporation Deduplication tracking for accurate lifespan prediction
JP6541369B2 (ja) * 2015-02-24 2019-07-10 キヤノン株式会社 メモリのデータ処理を行なうデータ処理装置、データ処理方法、及びプログラム
US10452302B2 (en) * 2015-04-09 2019-10-22 Hitachi, Ltd. Storage system and data control method
KR102393323B1 (ko) 2015-08-24 2022-05-03 삼성전자주식회사 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법
KR102456104B1 (ko) 2015-08-24 2022-10-19 삼성전자주식회사 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
KR102333746B1 (ko) 2015-09-02 2021-12-01 삼성전자주식회사 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
US9934174B2 (en) 2015-09-18 2018-04-03 Seagate Technology Llc Selectively enable data transfer based on accrued data credits
US9734912B2 (en) * 2015-11-25 2017-08-15 Macronix International Co., Ltd. Reprogramming single bit memory cells without intervening erasure
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11620336B1 (en) * 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US10740227B2 (en) * 2017-04-28 2020-08-11 Vmware, Inc. Reclaiming storage resources
CN107193493A (zh) * 2017-05-19 2017-09-22 惠州佰维存储科技有限公司 Nand闪存块的管理方法及其系统
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
CN108073362B (zh) * 2017-12-20 2021-04-09 北京兆易创新科技股份有限公司 一种延长PairBlock使用寿命的方法及装置
US11210166B1 (en) * 2017-12-22 2021-12-28 Pliops Ltd. Efficient redundancy management in key-value NAND flash storage
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11132247B2 (en) * 2018-07-30 2021-09-28 Micron Technology, Inc. Selective bad block untag and bad block reuse
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
CN111312326B (zh) * 2020-03-09 2021-11-12 宁波三星医疗电气股份有限公司 闪存寿命测试方法、装置、电力采集终端及存储介质
CN111833948A (zh) * 2020-07-16 2020-10-27 浪潮(北京)电子信息产业有限公司 Nand闪存的擦写能力测试方法、装置、设备及介质
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03250499A (ja) 1990-02-27 1991-11-08 Nec Corp データ記憶回路
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5768182A (en) 1991-05-21 1998-06-16 The Regents Of The University Of California Ferroelectric nonvolatile dynamic random access memory device
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (ja) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JP2610737B2 (ja) 1991-12-20 1997-05-14 シャープ株式会社 記録再生装置
US5592415A (en) 1992-07-06 1997-01-07 Hitachi, Ltd. Non-volatile semiconductor memory
US5341339A (en) 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5337275A (en) 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH08124393A (ja) 1994-10-20 1996-05-17 Fujitsu Ltd データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置
KR100271701B1 (ko) 1995-03-15 2000-11-15 가나이 쓰도무 열화진단기능을 구비한 반도체기억장치
US5568423A (en) 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5805809A (en) 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5621687A (en) 1995-05-31 1997-04-15 Intel Corporation Programmable erasure and programming time for a flash memory
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
ATE225961T1 (de) * 1996-08-16 2002-10-15 Tokyo Electron Device Ltd Halbleiterspeicheranordnung mit fehlerdetektion und -korrektur
US5956473A (en) 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5963970A (en) 1996-12-20 1999-10-05 Intel Corporation Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US6085248A (en) 1997-02-11 2000-07-04 Xaqtu Corporation Media access control transmitter and parallel network management system
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JP3557511B2 (ja) * 1997-08-27 2004-08-25 沖電気工業株式会社 半導体ディスク装置の寿命算出方法
JP3898305B2 (ja) 1997-10-31 2007-03-28 富士通株式会社 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
US6305014B1 (en) 1998-06-18 2001-10-16 International Business Machines Corporation Lifetime-sensitive instruction scheduling mechanism and method
WO2000014641A1 (de) 1998-09-04 2000-03-16 Mueller Otto Zugriffssteuerung eines speichers beschränkter löschhäufigkeit
FR2787601A1 (fr) 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
KR100388179B1 (ko) 1999-02-08 2003-06-19 가부시끼가이샤 도시바 불휘발성 반도체 메모리
US7628622B2 (en) 1999-08-04 2009-12-08 Super Talent Electronics, Inc. Multi-level cell (MLC) slide flash memory
US6405295B1 (en) 1999-09-07 2002-06-11 Oki Electric Industry, Co., Ltd. Data storage apparatus for efficient utilization of limited cycle memory material
US7130807B1 (en) 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
JP2001306543A (ja) 2000-04-19 2001-11-02 Nec Corp マイクロコンピュータ及びフラッシュメモリのデータ書換え方法
US6484228B2 (en) 2000-04-19 2002-11-19 Motorola, Inc. Method and apparatus for data compression and decompression for a data processor system
US6256232B1 (en) 2000-07-07 2001-07-03 Institute For Information Industry Data access method capable of reducing the number of erasing to flash memory and data patch and access device using the same
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
TW520514B (en) 2001-08-02 2003-02-11 Macronix Int Co Ltd Circuit and method of qualification test for non-volatile memory
US6948026B2 (en) 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US20030058681A1 (en) 2001-09-27 2003-03-27 Intel Corporation Mechanism for efficient wearout counters in destructive readout memory
US7000063B2 (en) 2001-10-05 2006-02-14 Matrix Semiconductor, Inc. Write-many memory device and method for limiting a number of writes to the write-many memory device
US20030120841A1 (en) 2001-12-21 2003-06-26 Chang Matthew C.T. System and method of data logging
US6735673B2 (en) 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
US6640283B2 (en) 2002-01-16 2003-10-28 Hewlett-Packard Development Company, L.P. Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US6606273B1 (en) * 2002-04-11 2003-08-12 Advanced Micro Devices, Inc. Methods and systems for flash memory tunnel oxide reliability testing
US6775751B2 (en) 2002-08-06 2004-08-10 International Business Machines Corporation System and method for using a compressed main memory based on degree of compressibility
NZ520786A (en) 2002-08-14 2005-06-24 Daniel James Oaeconnell Method of booting a computer system using a memory image of the post boot content of the system RAM memory
KR100484485B1 (ko) 2002-10-01 2005-04-20 한국전자통신연구원 비휘발성 메모리에의 데이터 저장 방법 및 장치
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US20040135903A1 (en) 2002-10-11 2004-07-15 Brooks Lane C. In-stream lossless compression of digital image sensor data
CA2408979A1 (en) 2002-10-18 2004-04-18 Richard Egon Schauble Tamper-evident use-indicating odometer and engine-timer
KR101174308B1 (ko) 2002-10-28 2012-08-16 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US6973531B1 (en) 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US6925523B2 (en) 2003-03-03 2005-08-02 Agilent Technologies, Inc. Managing monotonically increasing counter values to minimize impact on non-volatile storage
US7203874B2 (en) * 2003-05-08 2007-04-10 Micron Technology, Inc. Error detection, documentation, and correction in a flash memory device
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
TWI248570B (en) * 2003-05-29 2006-02-01 Accton Technology Corp Method and system for storing data
US7143238B2 (en) 2003-09-30 2006-11-28 Intel Corporation Mechanism to compress data in a cache
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US20070067366A1 (en) 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
US7032087B1 (en) 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
JP2005147749A (ja) * 2003-11-12 2005-06-09 Toshiba Corp スキャン回路を備える半導体集積回路、スキャン回路システムおよびスキャンテストシステム
US7480760B2 (en) 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
JP4357304B2 (ja) 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
WO2005094281A2 (en) 2004-03-25 2005-10-13 Riverstone Networks, Inc. Device-level address translation within a programmable non-volatile memory device
US7595796B2 (en) 2004-04-23 2009-09-29 Hewlett-Packard Development Company, L.P. Optimizing lifetime of a display
US7664796B2 (en) 2004-10-13 2010-02-16 Microsoft Corporation Electronic labeling for offline management of storage devices
JP2008522254A (ja) 2004-11-08 2008-06-26 イノパス・ソフトウェアー・インコーポレーテッド スタティック・ファイル・システムの差異検出および更新
US7433994B2 (en) 2004-12-07 2008-10-07 Ocz Technology Group, Inc. On-device data compression to increase speed and capacity of flash memory-based mass storage devices
US20060149891A1 (en) * 2004-12-30 2006-07-06 Rudelic John C Relocated reclaim block
US7224604B2 (en) 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US20060209684A1 (en) 2005-03-18 2006-09-21 Via Technologies, Inc. Data rate controller, and method of control thereof
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
JP2007011839A (ja) * 2005-07-01 2007-01-18 Hitachi Computer Peripherals Co Ltd メモリ管理方法及びメモリ管理システム
KR100705220B1 (ko) * 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
JP2007094734A (ja) 2005-09-28 2007-04-12 Canon Inc 半導体ディスク装置、該装置へのデータ書き込み方法、プログラム及び記憶媒体
US7761854B2 (en) * 2005-12-22 2010-07-20 International Business Machines Corporation Adaptive profiling by progressive refinement
US7457178B2 (en) 2006-01-12 2008-11-25 Sandisk Corporation Trimming of analog voltages in flash memory devices
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US7512847B2 (en) * 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP2007316779A (ja) 2006-05-23 2007-12-06 Sharp Corp 不揮発性メモリシステム
US8412682B2 (en) 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7555575B2 (en) 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
US7561482B2 (en) * 2006-09-07 2009-07-14 Sandisk Corporation Defective block isolation in a non-volatile memory system
CN101578587B (zh) 2006-11-24 2015-02-25 Lsi公司 延迟缩减存储器寿命的操作
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US20080126685A1 (en) 2006-11-24 2008-05-29 Radoslav Danilak System, method, and computer program product for reducing memory write operations using an instruction set
US7809900B2 (en) 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7904764B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. Memory lifetime gauging system, method and computer program product
US7747813B2 (en) 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US8090980B2 (en) 2006-12-08 2012-01-03 Sandforce, Inc. System, method, and computer program product for providing data redundancy in a plurality of storage devices
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
KR20080090021A (ko) 2007-04-03 2008-10-08 삼성테크윈 주식회사 데이터 전송 속도가 다른 인터페이스들을 갖는 데이터 저장모듈 및 이의 데이터 전송방법
US7743203B2 (en) * 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
US20080294813A1 (en) 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US7934072B2 (en) * 2007-09-28 2011-04-26 Lenovo (Singapore) Pte. Ltd. Solid state storage reclamation apparatus and method
TW200917123A (en) 2007-10-03 2009-04-16 Guo-Lang Zhang USB flash disk for computer boot up and method of loading programs in the USB flash disk
TWI373772B (en) 2007-10-04 2012-10-01 Phison Electronics Corp Wear leveling method and controller using the same
US20090125645A1 (en) 2007-11-12 2009-05-14 Gemalto Inc System and method for supporting multiple tokens having a smart card to control parameters of a flash memory device
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US9183133B2 (en) 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
WO2009072101A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
US7827320B1 (en) 2008-03-28 2010-11-02 Western Digital Technologies, Inc. Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state
US7970978B2 (en) 2008-05-27 2011-06-28 Initio Corporation SSD with SATA and USB interfaces
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US8140739B2 (en) 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
JP2012033047A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
US9355023B2 (en) * 2011-03-15 2016-05-31 Anirudh Badam Virtual address pager and method for use with a bulk erase memory
US8738882B2 (en) * 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170063340A (ko) * 2015-11-30 2017-06-08 삼성전자주식회사 통계적 분석을 통한 강화된 다중 스트리밍
KR102559019B1 (ko) * 2015-11-30 2023-07-24 삼성전자주식회사 통계적 분석을 통한 강화된 다중 스트리밍

Also Published As

Publication number Publication date
US10579278B2 (en) 2020-03-03
CN101874240B (zh) 2012-05-30
US9489303B2 (en) 2016-11-08
US20160239411A1 (en) 2016-08-18
US20170075597A1 (en) 2017-03-16
US20120311378A1 (en) 2012-12-06
US9921761B2 (en) 2018-03-20
US9165682B2 (en) 2015-10-20
US20200167083A1 (en) 2020-05-28
US20160011974A1 (en) 2016-01-14
US20180329633A1 (en) 2018-11-15
TW200933638A (en) 2009-08-01
US20130326130A1 (en) 2013-12-05
JP2011503741A (ja) 2011-01-27
US9323666B2 (en) 2016-04-26
CN101874240A (zh) 2010-10-27
US20120060060A1 (en) 2012-03-08
US20140301143A1 (en) 2014-10-09
US8339881B2 (en) 2012-12-25
US20090129163A1 (en) 2009-05-21
WO2009067139A1 (en) 2009-05-28
TWI474335B (zh) 2015-02-21
US7903486B2 (en) 2011-03-08
US8699287B2 (en) 2014-04-15
US8531900B2 (en) 2013-09-10

Similar Documents

Publication Publication Date Title
US20200167083A1 (en) Techniques for controlling recycling of blocks of memory
JP5819610B2 (ja) 異なる記憶装置にデータを書き込む方法及び装置
JP2011503741A5 (ja)
JP2011503768A5 (ja)
US9298534B2 (en) Memory system and constructing method of logical block
US8103820B2 (en) Wear leveling method and controller using the same
US8046526B2 (en) Wear leveling method and controller using the same
US10592134B1 (en) Open block stability scanning
US20170039141A1 (en) Mapping table updating method, memory storage device and memory control circuit unit
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
US8332696B2 (en) Defect management method for storage medium and system thereof
KR20110060493A (ko) 메모리 장치의 소거 카운트 관리 방법 및 장치
US20220413737A1 (en) Secure-Erase Prediction for Data Storage Devices
US10430288B2 (en) Data backup method, data recovery method and storage controller

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150721