JP2014078262A - Techniques for multi-memory device lifetime management - Google Patents
Techniques for multi-memory device lifetime management Download PDFInfo
- Publication number
- JP2014078262A JP2014078262A JP2013261097A JP2013261097A JP2014078262A JP 2014078262 A JP2014078262 A JP 2014078262A JP 2013261097 A JP2013261097 A JP 2013261097A JP 2013261097 A JP2013261097 A JP 2013261097A JP 2014078262 A JP2014078262 A JP 2014078262A
- Authority
- JP
- Japan
- Prior art keywords
- memory device
- lifetime
- feature
- data
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
Description
[0001]本実施形態は、メモリに関するものであり、より具体的には、有限の寿命を有するメモリに関するものである。 [0001] This embodiment relates to a memory, and more specifically, to a memory having a finite lifetime.
[0002]メモリは、現代のエンタープライズコンピューティングシステムの性能に関する最も制限的な特徴の一つである。メモリの一つの制限的特徴は、多くのタイプのメモリが限られた寿命を示すという事実である。例えば、フラッシュなどの不揮発性メモリの寿命は、そのメモリが消去され、再書込みされるたびに、少量ではあるが減少する。時が経つにつれて、数千回の消去及び再書込みを経て、そのようなフラッシュメモリは、ますます信頼できないものになることがある。 [0002] Memory is one of the most restrictive features regarding the performance of modern enterprise computing systems. One limiting feature of memory is the fact that many types of memory have a limited lifetime. For example, the lifetime of non-volatile memory, such as flash, decreases a small amount each time the memory is erased and rewritten. As time passes, after thousands of erases and rewrites, such flash memory can become increasingly unreliable.
[0003]したがって、使用のタイプ(例えば、軽い対激しい)に応じて、フラッシュメモリの寿命が、大幅に変化する場合がある。これは、さまざまな点で問題になる可能性がある。例えば、フラッシュメモリ製造業者は、特定の長さの時間にわたる制限付き保証を提供することを期待されることが多い。そのような保証は、フラッシュメモリの軽い使用から通常の使用には十分であるかもしれないが、激しい使用(例えば、エンタープライズ応用など)の場合にフラッシュメモリの返品及び交換を必要とし得る。 [0003] Thus, depending on the type of use (eg, light versus intense), the lifetime of the flash memory may vary significantly. This can be a problem in many ways. For example, flash memory manufacturers are often expected to provide a limited warranty over a specific length of time. Such a warranty may be sufficient for light to normal use of flash memory, but may require return and replacement of flash memory for heavy use (eg, enterprise applications).
[0004]そのような状況は、フラッシュメモリ製造業者の利益に大きく影響する場合がある。具体的に言うと、激しく使用する顧客について絶え間なく保証付きフラッシュメモリを交換する必要性によって、軽い使用から通常の使用の顧客へのフラッシュメモリの販売から得られる利益が相当に減少する可能性がある。したがって、従来技術に関連する上記及び/又は他の問題に対処する必要がある。 [0004] Such a situation can have a significant impact on the benefits of flash memory manufacturers. Specifically, the need to continually replace guaranteed flash memory for heavily used customers can significantly reduce the profits gained from selling flash memory from light use to normal use customers. is there. Accordingly, there is a need to address the above and / or other problems associated with the prior art.
[0005]メモリの寿命を縮める動作を遅延させるシステム、方法、及びコンピュータプログラム製品を提供する。使用時に、メモリの寿命に関連する少なくとも一つの特徴が、特定される。このために、メモリの寿命を縮める少なくとも一つの動作が、この特徴に基づいて遅延される。 [0005] Systems, methods, and computer program products for delaying operations that reduce the lifetime of a memory are provided. In use, at least one characteristic related to the lifetime of the memory is identified. For this reason, at least one operation that shortens the lifetime of the memory is delayed based on this feature.
[0018]説明する種々の実施形態に従って、メモリの寿命を縮める様々な動作を、かかる寿命を延ばすために制御することができる。この説明では、そのような動作は、書込み動作、消去動作、プログラム動作、及び/又は前述の寿命を縮め得る全ての他の動作を指し得るものである。 [0018] In accordance with various described embodiments, various operations that reduce the lifetime of a memory can be controlled to extend such lifetime. In this description, such an operation may refer to a write operation, an erase operation, a program operation, and / or any other operation that can reduce the aforementioned lifetime.
[0019]図1に、一実施形態によるメモリの寿命を縮める動作を遅延させる方法100を示す。図示するように、メモリの寿命に関連する少なくとも一つの特徴が特定される。動作102を参照されたい。
[0019] FIG. 1 illustrates a
[0020]この説明では、メモリの寿命とは、その間にメモリが任意の所望の度合の使用適正を呈する全ての持続時間を含み得るものである。例えば、様々な実施形態では、そのような寿命は、所望の寿命、実際の寿命、推定された寿命などを含み得るが、間違いなくこれらに限定はされない。さらに、使用適正の度合は、まだ動作しているコンポーネント(例えば、ブロック、セルなど)のパーセンテージ、メモリ又はそのコンポーネントの信頼性、及び/又は、更に言えば任意の他のパラメータなど、全ての使用適正関連パラメータを指し得る。 [0020] In this description, the lifetime of the memory is meant to include all the durations during which the memory exhibits any desired degree of use. For example, in various embodiments, such lifetimes can include, but are not limited to, desired lifetimes, actual lifetimes, estimated lifetimes, and the like. Furthermore, the degree of suitability depends on all usage, such as the percentage of components that are still operating (eg, blocks, cells, etc.), the reliability of the memory or its components, and / or any other parameters for that matter. May refer to the relevant parameters.
[0021]また、この説明では、動作102で特定される寿命に関連する特徴は、様々な実施形態で、期間、メモリの寿命を縮める動作のレート、メモリの寿命を縮める動作の許容総回数、寿命の持続時間などを含むことができる。さらに、前述の動作の許容総回数及び選択された又は所望の寿命を考慮すれば、一つの例示的実施形態では、期間あたりの動作の回数の単位で動作の最大平均レートを直接に計算することができる。もちろん、絶対に寿命の任意の他の特徴を特定できるので、そのような例示的特徴は、例示のみのために示したものである。このことは、直ぐに明らかとなろう。
[0021] Also, in this description, the lifetime-related features identified in
[0022]このために、メモリの寿命を縮める少なくとも一つの動作が、特徴に基づいて遅延される。動作104を参照されたい。したがって、そのような遅延を、動作102で特徴されるメモリ寿命の特徴の少なくとも部分的関数である任意の形で実行することができる。この説明では、動作の前述の遅延は、動作の一部だけが遅延される状況を含むものと考えられる。例えば、動作が複数のコンポーネントを含む状況では、そのような遅延を、そのような動作の一以上(又は全て)の部分に適用してもよい。
[0022] To this end, at least one operation that reduces the lifetime of the memory is delayed based on the feature. See
[0023]一実施形態では、動作は、その動作を開始するコマンドを遅延させることによって、遅延され得る。例えば、書込みコマンド又は消去コマンドの特定に応答して、そのようなコマンドの実行を遅延させることができる。もちろん、他の実施形態では、動作自体を単純に遅延することができる。この設計によって、そうでなければメモリの寿命を縮めるであろう一以上の動作のそのような遅延が、少なくとも部分的に寿命の減少を少なくする。 [0023] In one embodiment, an operation may be delayed by delaying a command that initiates the operation. For example, execution of such a command can be delayed in response to the identification of a write command or an erase command. Of course, in other embodiments, the operation itself can simply be delayed. With this design, such a delay in one or more operations that would otherwise reduce the lifetime of the memory at least partially reduces the decrease in lifetime.
[0024]以下、より例示的な情報を、様々なオプションのアーキテクチャ及び特徴に関して示す。これらアーキテクチャ及び特徴は、前述のフレームワークをユーザの希望に応じて実施してもしなくてもよい。例えば、遅延は、多数の異なる技法を使用して様々な異なる方法で管理することができる。これら技法についての例については、以下に説明する。なお、以下の情報が、例示のために示すものであり、いかなる形でも限定的に解釈されてはならないことに強く留意されたい。次の特徴のいずれをも、説明する他の特徴を伴わずに又は伴って任意に組み込むことができる。 [0024] In the following, more exemplary information will be presented regarding various optional architectures and features. These architectures and features may or may not implement the framework described above as desired by the user. For example, the delay can be managed in a variety of different ways using a number of different techniques. Examples of these techniques are described below. It should be noted that the following information is provided for illustrative purposes and should not be construed as limiting in any way. Any of the following features may optionally be incorporated with or without other features described.
[0025]図2は、別の実施形態によるメモリの寿命を縮める動作を遅延させる技法200を示している。オプションとして、本技法200を、図1の方法100を実行するために実施することができる。しかし、もちろん、技法200を、任意の所望の環境で実施してもよい。前述の定義が、この説明中にあてはまり得ることにも留意されたい。
[0025] FIG. 2 illustrates a
[0026]図示するように、技法200は、メモリが最小限の使用適正を示すことをもたらす動作の総回数202並びにメモリの最小の所望の寿命204を考慮に入れている。そのようなデータ点から、最小の所望の寿命204を達成する最大平均動作レート206を計算することができる。
[0026] As shown, the
[0027]使用中に、寿命を縮める動作の回数を、時間の進行につれて監視することができる。如何なる時でも、時間の経過に伴い動作の回数が、図示の形で最大平均動作レート206を超える場合には、全ての余分な動作(レートを超えることに寄与する)を、計算された量だけ、所定の時間だけ、又は寿命を縮める動作の以前のレート若しくは予測されたレートに基づいて適応的に、遅延することができる。この所定の時間は、一実施形態では、最大平均動作レート206を超えないことをもたらす時間とすることができる。
[0027] During use, the number of operations that shorten the life can be monitored over time. If at any time the number of operations over time exceeds the maximum
[0028]様々な実施形態では、どの動作が遅延の対象になるか(並びに遅延自体の長さ)を、様々な要因に基づくものとすることができる。例えば、一実施形態では、遅延を、動作を開始するアプリケーションに基づくものとしてもよい。そのような実施形態では、より低い優先順位を有するアプリケーションによって開始される動作を、遅延の対象とすることができ、より高い優先順位を有するアプリケーションによって開始される動作を、必ずしも遅延の対象ではない(可能な時に)ものとすることができる。 [0028] In various embodiments, which operations are subject to delay (as well as the length of the delay itself) can be based on various factors. For example, in one embodiment, the delay may be based on the application that initiates the operation. In such embodiments, operations initiated by applications with lower priority can be subject to delay, and operations initiated by applications with higher priority are not necessarily subject to delay. (When possible).
[0029]もちろん、遅延がアプリケーション独立の形で動作にまたがって管理される他の実施形態も考えられる。例えば、遅延を、発生元のアプリケーションに拠らず、あるタイプの動作(例えば、消去動作など)の全てに適用してもよい。さらに、ハイブリッド手法を用いる実施形態も、考えられる。 [0029] Of course, other embodiments are contemplated where the delay is managed across operations in an application independent manner. For example, the delay may be applied to all of a certain type of operation (for example, an erase operation) without depending on the application that generated the delay. Furthermore, embodiments using a hybrid approach are also conceivable.
[0030]さらに、遅延される動作に、寿命の異常な短縮を引き起こす動作又は動作のパターンを含む実施形態も考えられる。一実施形態で、これらのパターンだけを遅延させることができる。例えば、ウィルス又は手荒いアプリケーション動作パターンを検出することができ、そのようなパターンからの動作だけを遅延させることができる。 [0030] In addition, embodiments are contemplated that include operations or patterns of operations that cause abnormal shortening of life in the delayed operations. In one embodiment, only these patterns can be delayed. For example, viruses or rough application behavior patterns can be detected, and only the behavior from such patterns can be delayed.
[0031]図3は、別の実施形態による、メモリの寿命を縮める動作を遅延させるタイムインターバルに基づく技法300を示している。オプションとして、この技法300を、図1の方法100を実行するために及び/又は更に図2の技法200で実施することができる。しかし、もちろん、技法300を、任意の所望の環境で実施してもよい。やはり、前述の定義が、この説明中にあてはまり得ることにも留意されたい。
[0031] FIG. 3 illustrates a time interval based
[0032]図2の技法に類似して、技法300は、メモリが最小限の使用適正を示すことをもたらす動作の総数302並びにメモリの最小の所望の寿命304を考慮に入れる。そのようなデータ点から、最小の所望の寿命304を達成する最大平均動作レート306を計算することができる。使用中に、寿命を縮める動作の回数を、時間の進行につれて監視することができる。
[0032] Similar to the technique of FIG. 2,
[0033]如何なる時でも、時間の経過に伴い複数のそのような動作が、最大平均動作レート206を超える場合には、図示する方法で、全ての過剰な動作が、必ずしも、無条件に遅延(図2の技法200のように)されない。そうではなく、そのような過剰な動作を、当該動作が開始されるタイムインターバルに基づいて条件付きで遅延することができる。そのようなタイムインターバルは、例えば、時刻、日、月などを含むことができるが、これらに限定はされない。追加の実施形態では、タイムインターバルを、適応的及び動的に最適な期間へと調整することができる。例えば、そのような適応動的調整を、あるインターバルのサブインターバルにおいて寿命を縮める動作の頻度のヒストグラムなどに基づくものとしてもよい。
[0033] When a plurality of such operations over time exceed the maximum
[0034]例えば、過剰な回数の動作が、上に示した態様で月曜、火曜、水曜、木曜などに特定される場合には、後続の金曜、土曜、及び日曜中に特定される可能性のある動作の回数がより少ないことを認識する(例えば、予想する)ことができる。したがって、そのような過剰な回数の動作を無条件に遅延するのではなく、これらを、平均動作レート(1週間にわたって行われる時の)が最大平均動作レート206を超えない尤度に応じて、即座に実行することができる。もちろん、これがそうではないとわかる場合には、ある遅延を、後続の週の間に行うことなどができる。前述の例は、週の間の日状況で示したが、週、月などにまたがるメモリ使用の変動を考慮に入れた、他のより「マクロ」な実施形態が考えられる。
[0034] For example, if an excessive number of actions are specified on Monday, Tuesday, Wednesday, Thursday, etc. in the manner shown above, they may be specified on subsequent Fridays, Saturdays, and Sundays. It can be recognized (eg, anticipated) that the number of certain actions is less. Thus, rather than unconditionally delaying such an excessive number of operations, these are dependent on the likelihood that the average operation rate (when done over a week) does not exceed the maximum
[0035]更なる追加の実施形態では、動作の条件付き遅延を、必ずしもインターバルに基づくのではなく、その代わりに、メモリの使用履歴及び/又はメモリの予想される使用にさえ基づくように生成することができる。そのような実施形態では、将来の使用を予測するために履歴データを使用して、任意の所望の統計分析を実行し、過度な動作を遅延させることが必ずしも発生しない状況をより正確に特定すること等を行うことができる。 [0035] In a further additional embodiment, the conditional delay of operation is not necessarily based on intervals, but instead is based on memory usage history and / or even expected usage of memory. be able to. In such an embodiment, historical data is used to predict future use to perform any desired statistical analysis and more accurately identify situations where it does not necessarily delay excessive action. Can be done.
[0036]図4は、別の実施形態による、メモリの寿命を縮める動作を遅延させる積分に基づく技法400を示している。オプションとして、この技法400を、図1の方法100を実行するために、及び/又は、更に図2〜3の技法200及び300において実施することができる。しかし、もちろん、技法400を、任意の所望の環境で実施してもよい。やはり、前述の定義が、この説明中にあてはまり得ることにも留意されたい。
[0036] FIG. 4 illustrates an integration-based
[0037]以前の技法に類似して、技法400は、メモリが最小限の使用適正を示すことをもたらす動作の総回数402、及びメモリの最小の所望の寿命404を考慮に入れる。そのようなデータ点から、最小の所望の寿命404を達成する最大平均動作レート406を計算することができる。使用中に、寿命を縮める動作の回数を、時間の進行につれて監視することができる。
[0037] Similar to previous techniques, the
[0038]如何なる時でも、時間の経過に伴い複数のそのような動作が、最大平均動作レート406を超える場合に、図示された方法で(408を参照されたい)、全ての過剰な動作が、必ずしも、無条件の形で遅延(図2の技法200のように)されない。そうではなく、そのような過剰な動作を、メモリの使用を反映する積分関数に基づいて条件的に遅延することができる。具体的には、時間の経過に伴い寿命を縮める動作の総合レートと最大平均動作レート406との間の差の積分を、進行につれて計算することができる。このために、そのような積分が、そのような動作が最大平均動作レート406を超える可能性があることを示す場合に、前述の遅延を、必ずしも行う必要がない。
[0038] At any given time, if multiple such operations over time exceed the maximum
[0039]図5は、別の実施形態による、所望の寿命持続時間が推定された寿命持続時間を超える場合に、メモリの寿命を縮める動作を遅延させるシステム500を示している。オプションとして、このシステム500を、図1の方法100を実行し、及び/又は、更にオプションとして図2〜4の技法のいずれかを組み込むように実施することができる。しかし、もちろん、システム500を任意の所望の形で使用してもよい。
[0039] FIG. 5 illustrates a
[0040]図示するように、複数のストレージデバイス530、540を含むストレージシステム503が含まれている。少なくとも一つのストレージバス502が、少なくとも一つのコントローラ511を少なくとも一つのコンピュータ501に結合している。様々な実施形態では、ストレージバス502は、serial advanced technology attachment(SATA)バス、serial attached
SCSI(SAS)バス、ファイバチャネルバス、メモリバスインターフェース、フラッシュメモリバス、NANDフラッシュバス、integrated drive electronics(IDE)バス、advanced technology attachment(ATA)バス、consumer electronics(CE)バス、universal serial bus(USB)バス、スマートカードバス、マルチメディアカード(MMC)バスなどを含むことができるが、これらに限定はされない。したがって、コントローラ511を、システム(例えば、コンピュータ501)と二次ストレージ(ストレージデバイス530、540のうちの少なくとも一つなど)との間に結合することができる。さらに、ストレージデバイス530、540に関連するメモリの寿命を延ばす少なくとも一つの装置510が含まれている。
[0040] As shown, a
SCSI (SAS) bus, fiber channel bus, memory bus interface, flash memory bus, NAND flash bus, integrated drive electronics (IDE) bus, advanced technology attachment (ATA) bus, consumer electronics (CE) bus, universal USBs, universal USBs ) Bus, smart card bus, multimedia card (MMC) bus, etc., but are not limited thereto. Accordingly, the
[0041]図示するように、装置510は、それぞれ複数の対応するバス521、522を介してストレージデバイス530、540に結合されたコントローラ511を含んでいる。コントローラ511は、ストレージバス502を介してコンピュータ501から受け取ったコマンドを実行するために、複数のバス521、522を使用して、複数のストレージデバイス530、540を制御し、これらストレージデバイスとデータを交換する。ストレージデバイス530、540の各々は、データを格納する少なくとも一つのモジュール又はブロック531、532、533、541、542、543を含んでいる。さらに、前述のコマンドの少なくとも一部は、寿命を縮めるコマンドであり、少なくとも一つのモジュール又はブロック531、532、533、541、542、543への悪影響を有する。使用中に、装置510は、そのような寿命を縮めるコマンドに拠らず、ストレージデバイス530、540の寿命を延ばすように働く。
[0041] As shown, the
[0042]これを達成するために、コントローラ511は、対応するバス512を介して寿命評価モジュール514に結合されている。装置510は、現在時刻を供給するためにバス518を介して寿命評価モジュール514に結合された時刻モジュール517を更に含んでいる。使用中に、寿命評価モジュール514は、ストレージバス502を介してコンピュータ501からコントローラ511に通信されるコマンドを受け取るように働く。さらに、寿命評価モジュール514は、バス512を介して受け取った(一つ又は複数の)コマンドが実行されたと仮定して推定寿命を計算する。
[0042] To accomplish this, the
[0043]図5の参照を続ける。寿命推定モジュール514は、バス515を介してスロットリングモジュール516に結合されている。寿命推定モジュール514は、バス515を使用して、コントローラ511によって現在実行されているコマンドに関する推定寿命をスロットリングモジュール516に渡す。現在実行されているコマンドは、一実施形態では、バス512を介して寿命推定モジュール514によって受け取れたコマンドと同一とすることができ、また、ストレージバス502を介してコンピュータ501からコントローラ511によって受け取られたコマンドと同一とすることができる。
[0043] Continuing to refer to FIG. The
[0044]現在時刻モジュール517は、バス518を介してスロットリングモジュール516にも結合されている。したがって、現在時刻モジュール517からの現在時刻を、スロットリングモジュール516にも渡すことができる。一実施形態で、現在時刻モジュール517は、例えば、一定のタイムインターバルで増分される単純なカウンタなどとして実施することができる。
[0044]
[0045]スロットリングモジュール516は、バス519を介して必要寿命モジュール520に更に結合されており、バス513を介してコントローラ511に結合されている。使用中に、必要寿命モジュール520は、所望の寿命を格納するようになっている。この設計によって、スロットリングモジュール516は、バス513を介してコントローラ511に情報を渡して、現在のコマンドの実行を遅延させるようコントローラ511に指示するように、構成することができる。
[0045] The
[0046]一実施形態で、装置510のスロットリングモジュール516は、寿命に対する現在のコマンドの実行の影響が、推定される寿命が必要寿命モジュール520に格納された必要寿命以上になるものとなるまで、現在のコマンドの実行が遅延されるように動作することができる。スロットリングモジュール516の機能は、一実施形態で、バス515を介して受け取った推定寿命がバス519を介して受け取った必要寿命より短い場合に、コントローラ511に遅延信号を供給すること程度に単純にすることができる。
[0046] In one embodiment, the
[0047]別の実施形態では、コントローラ511、寿命評価モジュール514、及びスロットリングモジュール516の上で説明した機能を、所定のタイムインターバルにおいて受け取られるコマンドのグループに適用してもよい。そのような構成によって、システム500は、寿命を縮めるであろうコマンドの短いバーストを不必要に抑制せずに、必要寿命を満足することを可能とし得る。例えば1日としてタイムインターバルを選択することによって、そのような技法は、システム500が、寿命を縮めるコマンドのより高い瞬間的性能を提供することを可能にする。というのは、1日のある期間(例えば、夜間)においては、寿命を縮めるコマンドの平均頻度と比較して少ない頻度の寿命を減らすコマンドが存在する時間のインターバルがあり得るからである。
[0047] In another embodiment, the functions described above on
[0048]一つのオプションの実施形態では、コヒーレンシ(一貫性)を時間とともに維持することができる。コヒーレンシ法の一例として、寿命を減らすコマンドAが遅延される場合には、Aのデータ又はコマンドAの実行から生じる値に依存する全てのコマンド(寿命を減らすものであってもなくても)も、遅延される。 [0048] In one optional embodiment, coherency can be maintained over time. As an example of the coherency method, if the command A that reduces the lifetime is delayed, all commands (whether or not to reduce the lifetime) that depend on the data of A or the value resulting from the execution of the command A are also included. , Be delayed.
[0049]別の実施形態では、時刻を、ディスクがパワーアップされている時刻といったように、時刻の様々な近似に置換することができる。別の実施形態では、コンピュータ501、RAIDコントローラ、及び/又は他のデバイスが、追跡される時刻の精度を高めるために追加情報を提供することができる。したがって、ストレージデバイス530、540のうちの一以上の電源が入れられる時に、時間カウンタはカウントしていない。実時間は進みつつあるので、これは、性能を不必要に下げる可能性がある。そのようなシナリオでは、コンピュータ501、ソフトウェア、及び/又はコントローラが、そのような問題に対処するために、システム500の電源が切られる時に関する情報を提供することができる。
[0049] In another embodiment, the time can be replaced with various approximations of the time, such as the time the disk is powered up. In another embodiment, the
[0050]別の実施形態では、システム500は、コストを下げ性能を改善するためにストレージデバイス内冗長性機能を備えていてもよい。そのような実施形態では、データを、個々のストレージデバイス530、540の間で、その寿命に関連する任意の特徴に基づいて移動することができる(例えば、図1の動作102などを参照されたい)。例えば、ストレージデバイスの第1の部分530が、ストレージデバイスの第2の部分540のデータに対してより頻繁に上書きされるデータのセットを含むという状況があり得る。その場合に、所定の時間の後に、そのようなデータを、第1ストレージデバイス530から第2ストレージデバイス540に移動することができ、今後、第1ストレージデバイス530又は一以上のブロック/モジュール531、532、533を、より低い頻度で書き込まれるデータを格納するために使用するか、更なる使用から退かせることができる。
[0050] In another embodiment, the
[0051]このために、ストレージデバイスウェアを適当に分散させて、あるストレージデバイスが、グループの他のストレージデバイスに対してあまりにも早すぎる時点で障害を発生することを防ぐことができる。もちろん、本技法は、異なるストレージデバイスの間だけではなく、その一部にも適用することができる。このために、任意のメモリコンポーネントの寿命を、そのような形で管理することができる。 [0051] To this end, storage deviceware can be appropriately distributed to prevent one storage device from failing too early relative to the other storage devices in the group. Of course, the technique can be applied not only between different storage devices, but also part thereof. For this reason, the lifetime of any memory component can be managed in such a way.
[0052]何れの場合であっても、コントローラ511は、書込みを減らし、及び/又は書込みを分散するために構成され得る。この特徴によって、適当なストレージデバイス530、540の寿命を延ばすことができる。そのような技法を実行する一つの例示的方法を、図6の説明中に示す。
[0052] In any case, the
[0053]図6は、別の実施形態による、所望の寿命持続時間が推定された寿命持続時間を超える場合に、メモリの寿命を縮める動作を遅延させる方法600を示している。オプションとして、本方法600を、図5のシステム500を使用して実行することができ、及び/又は、更なるオプションでは図1〜4の技法のいずれかを組み込むことができる。しかし、もちろん、方法600を任意の所望の形で実行することができる。それでも、前述の定義が、この説明中にあてはまり得る。
[0053] FIG. 6 illustrates a
[0054]動作601を開始すると、方法600は、コントローラ(例えば、図5のコントローラ511など)によって継続され、コンピュータ(例えば、コンピュータ501など)によって少なくとも一つのストレージデバイス(例えば、ストレージデバイス530、540など)へ発行されるコマンドを待つ602。コマンドがコントローラによって受け取られると、この方法は、判断603に進み、この時に、コントローラは、動作602で受け入れられたコマンドが寿命を縮めるコマンド(例えば、消去動作、書込み動作など)であるか否かを判定する。判断603で、現在受け取られているコマンドが寿命を縮めるものではないと判定される場合には、そのようなコマンドは、動作607によって単純に処理することができる。
[0054] Upon initiating
[0055]一方、判断603で、現在受け取られているコマンドが実際に寿命を縮めるものであると判定される場合には、推定寿命を、動作602で受け取られたコマンド、以前の寿命、及び現在時刻(例えば、時刻モジュール517を介してなど)に基づいて、寿命評価モジュール(例えば、寿命エスティメータモジュール514など)によって計算する。動作604を参照されたい。一実施形態では、以前の寿命は、寿命推定モジュールの以前の状態を表すことができる。別の実施形態では、以前の寿命は、少なくとも一つのストレージデバイスの一以上の特性を測定することによって得ることができる。
[0055] On the other hand, if the
[0056]如何なる場合でも、そのような寿命評価モジュールによって推定される寿命は、その後、スロットリングモジュール(例えば、スロットリングモジュール516など)に供給される。判断605では、スロットリングモジュールが、寿命評価モジュールから受け取られた推定寿命がスロットリングモジュールに送られた必要寿命より短い場合に、スロットリングが必要であると判定する。スロットリングが必要な場合には、方法600は、動作606において、寿命を縮めるコマンドを遅延させる(例えば、抑制などによって)ことによって進行する。しかし、推定寿命が必要寿命より短くはない場合には、方法600は、上で示した動作607に進む。
[0056] In any case, the lifetime estimated by such a lifetime assessment module is then provided to a throttling module (eg, throttling
[0057]具体的には、動作606で、スロットリングモジュールが、コントローラを使用して、寿命を縮めるコマンドの実行を抑制することができる。一実施形態で、そのような抑制は、寿命評価モジュールによって推定される寿命が必要寿命以上になるまで、コントローラを使用して寿命を縮めるコマンドの実行を遅延させることによって実施することができる。
[0057] Specifically, at
[0058]別の実施形態では、抑制を、所定の時間期間内に判定し、後続の所定の時間期間にコマンドに適用することができる。そのような実施形態では、所定のタイムインターバル内で寿命をどれほど縮めることができるかに関して限度を設けることができる。更に別の実施形態では、あるタイムインターバル内にどれほど寿命を縮めることができるかに関する限度を、一以上の以前のタイムインターバルにおいて判定することができる。更に別の実施形態では、抑制を、複数の保留中の動作の分析に基づいて決定し、寿命を縮めない動作を、寿命を縮める動作又はそのような寿命を縮める動作に依存する動作の前に実行することを可能とし得る。 [0058] In another embodiment, the suppression can be determined within a predetermined time period and applied to the command during a subsequent predetermined time period. In such an embodiment, a limit can be placed on how much the lifetime can be shortened within a given time interval. In yet another embodiment, a limit on how much life can be shortened within a time interval can be determined in one or more previous time intervals. In yet another embodiment, the suppression is determined based on an analysis of a plurality of pending actions, and an action that does not reduce life is prior to an action that shortens or relies on such action to reduce the life. It may be possible to perform.
[0059]この設計によって、必要最小寿命を保証するために寿命を縮める動作を制御するデータストレージシステムを提供することができる。したがって、そのような最小必要寿命に対して寿命を縮める動作の影響を推定することができ、寿命を縮める動作の頻度を、適応的に制約することができる。 [0059] This design can provide a data storage system that controls operations that reduce the life to guarantee the required minimum life. Therefore, it is possible to estimate the influence of the operation that shortens the lifetime with respect to the minimum required lifetime, and it is possible to adaptively restrict the frequency of the operation that shortens the lifetime.
[0060]図7は、別の実施形態による、メモリの寿命を測定するグラフィカルユーザインターフェース700を示している。オプションとして、このグラフィカルユーザインターフェース700を、図1〜6の機能及びアーキテクチャの下で実施することができる。しかし、もちろん、グラフィカルユーザインターフェース700を任意の所望の環境で実施してもよい。やはり、前述の定義が、この説明中にあてはまり得ることにも留意されたい。
[0060] FIG. 7 illustrates a
[0061]図示するように、様々な表示を、メモリの寿命に関連する少なくとも一つの特徴を反映して提示することができる。一実施形態で、そのような特徴は、図1の動作102で特定されるものであってもよい。しかし、もちろん、この寿命関連の特徴は、メモリの寿命に少なくとも部分的に関連する任意の所望の特徴であってもよい。例えば、図5のシステム500では、この特徴を、処理され及び/又はコンピュータ501に単純に渡されるために図示のモジュールのいずれかからコントローラ511によって取り出されるものとすることができ、そしてこのコンピュータ501は、ソフトウェアアプリケーションプログラム(例えば、プラグインなど)の制御の下で関連する表示を提示することができる。
[0061] As shown, various displays can be presented reflecting at least one characteristic associated with the lifetime of the memory. In one embodiment, such features may be those identified in
[0062]例えば、前述の表示は、一実施形態では、一以上のメモリについて残っている寿命の量を示すゲージ702を含むことができる。そのような実施形態では、ゲージ702は、時間の経過に伴い実行された寿命を縮める動作の回数の関数として残っている総メモリ寿命の長さを示すことができる。別の実施形態では、前述の表示は、以前の使用の外挿に基づき、抑制動作の一時停止を仮定した寿命を示す推定値705を示すことができる。
[0062] For example, the foregoing display may include a
[0063]別の実施形態では、前述の表示は、一以上のメモリについて最小限の量の寿命が残っていることを示す警告704を含むことができる。そのような寿命は、例えば、メモリ使用量履歴データに基づいて推定することができる。この設計によって、ユーザは、所定の時間の間にメモリを交換しなければならない状況などについて警告を受けることができる。もちろん、任意の所望の表示を使用して、メモリの寿命に関連する様々な情報を報告する他の実施形態が考えられる。
[0063] In another embodiment, the aforementioned indication may include a
[0064]図8は、別の実施形態による、差情報を利用してメモリ内の書込み動作を減らす方法800を示している。オプションとして、この方法800を、図1〜7の機能及びアーキテクチャに関連して実行してもしなくてもよい。しかし、もちろん、方法800を、任意の所望の環境で実施してもよい。やはり、前述の定義が、この説明中にあてはまり得ることにも留意されたい。
[0064] FIG. 8 illustrates a
[0065]図示するように、まず、メモリに格納されたデータに対して実行される書込み動作が特定される。動作802を参照されたい。この説明では、そのような書込み動作は、メモリに格納されたデータの変更をもたらす全ての動作を含み得る。さらに、そのような書込み動作を、そのような動作に関連する書込みコマンド、書込み動作自体などを傍受することによって任意の所望の方法で特定することができる。
[0065] As shown, a write operation to be performed on data stored in memory is first identified. See
[0066]動作804に示すように、次に、書込み動作の結果とメモリに格納されたデータとの間の差を求める。この説明では、前述の差は、少なくとも部分的に、メモリに格納されたデータの第1状態と、前述の書込み動作から生じる第2状態との間の全ての差を反映することができる。
[0066] As shown in
[0067]別の実施形態では、メモリに格納された任意のデータの間の差を、求めることができる。例えば、メモリの異なる位置からのデータの差を求めるように、ファイルの新しい変更された版が、作成され、メモリの新しい位置に書き込まれてもよい。オプションとして、データの位置を、ハッシュ、ブルームフィルタなどに基づいて特定することができる。このために、同一データの異なるインスタンスがメモリ内の異なる位置に書き込まれる一つの例示的実施形態では、求められた差が、データの位置を含んでいてもよく、必ずしもデータ自体を含まなくてもよい。 [0067] In another embodiment, the difference between any data stored in memory can be determined. For example, a new modified version of the file may be created and written to a new location in memory to determine the difference in data from different locations in memory. Optionally, the location of the data can be identified based on a hash, Bloom filter, etc. For this reason, in one exemplary embodiment where different instances of the same data are written to different locations in memory, the determined difference may include the location of the data, but not necessarily the data itself. Good.
[0068]一実施形態では、差に関連する差情報を、メモリ(例えば、データが格納されるのと同一のメモリなど)に格納することができる。別の実施形態では、差情報を、後に異なる実施形態の説明中に詳しく述べる態様で、別々のバッファに格納することもできる。差情報が、少なくとも部分的に動作804で求められる差を記述する全ての情報を含むことができることに留意されたい。後に説明する実施形態の議論においてやがて明白になるように、差情報は、一実施形態では、命令セットを利用して格納することができる。やはり以下に説明するように、そのような命令セットは、様々な実施形態では、適応的に変更し、及び/又は動的に拡張することができる。
[0068] In one embodiment, difference information related to the difference may be stored in a memory (eg, the same memory in which the data is stored, etc.). In another embodiment, the difference information may be stored in separate buffers in a manner that will be detailed later in the description of the different embodiments. Note that the difference information can include all information that describes the difference determined at least in part at
[0069]このために、書込み動作を、差情報を利用して減らすことができる。動作806を参照されたい。この設計によって、書込み動作のそのような減少が、オプションで、メモリの寿命をのばすことができる。
[0069] To this end, write operations can be reduced utilizing difference information. See
[0070]以下、より例示的な情報を、様々なオプションのアーキテクチャ及び特徴に関して示す。なお、前述のフレームワークを、ユーザの希望に従って、これらのアーキテクチャ及び特徴を用いて、実施してもしなくてもよい。例えば、一つの例示的システムを、差情報に基づいて書込み情報を減らす一つの例示的な方法の実施について示す。以下の情報が、例示のために示され、いかなる形でも限定的と解釈されてはならないことに強く留意されたい。次の特徴のいずれをも、説明される他の特徴を除外して又は除外せずにオプションで組み込むことができる。 [0070] In the following, more exemplary information is presented regarding various optional architectures and features. Note that the above-described framework may or may not be implemented using these architectures and features according to the user's wishes. For example, one exemplary system is shown for implementation of one exemplary method for reducing write information based on difference information. It is strongly noted that the following information is presented for illustrative purposes and should not be construed as limiting in any way. Any of the following features may optionally be incorporated with or without the other features described.
[0071]図9は、別の実施形態による、メモリ内の書込み動作を減らすシステム900を示している。オプションとして、このシステム900を、図8の方法800を実行し、及び/又は、更なるオプションで図1〜7の方法又は技法のいずれかを組み込むために実施することができる。しかし、もちろん、システム900を、任意の所望の態様で使用してもよい。やはり、前述の定義が、この説明中にあてはまり得る。
[0071] FIG. 9 illustrates a
[0072]図示するように、システム900は、下に説明する態様で入出力(I/O)バス902を介してストレージデバイス930に結合されたコンピュータ901を含んでいる。I/Oバス902は、読取り経路903及び書込み経路904を含んでいる。ストレージデバイス930は、複数のストレージブロック931、932、933を含んでいる。ストレージブロック931、932、933は、コンピュータ901によって書き込まれ、読み取られる。
[0072] As shown,
[0073]やがて明白になるように、ストレージブロック931、932、933の各々の所定の部分934を、差情報を格納するために割り振ることができる。当該差情報は、対応するストレージブロック931、932、933の残りの部分935に格納されたデータに対して行われる、コンピュータ901による全ての変更を反映するものである。様々な実施形態では、所定の部分934のサイズは、ユーザが設定することができる。さらに、そこに格納される差情報は、任意の形態をとることができる。
[0073] As will become apparent, a
[0074]表1は、差情報の例を表す一つの候補フォーマットを示している(複数の差情報を、ストレージブロック931、932、933の各所定の部分934に格納することができる)。
[0074] Table 1 shows one candidate format that represents an example of difference information (a plurality of difference information can be stored in each
[0075]この実施形態では、オペレーションコードは、対応するストレージブロック931、932、933の残りの部分935に格納されたデータに対して実行される動作を表すことができる。そのような動作の例は、end(終了)、replace(置換)、move up(上に移動)、move down(下に移動)、delete(削除)、insert(挿入)、及び/又はさらに言えば任意の他の動作を含むことができるが、これらに限定はされない。オプションとして、そのような動作のそれぞれが、コンパクト表現用の関連するコード(例えば、replace=‘001’、move up=‘010’など)を有し得る。
[0075] In this embodiment, the operation code may represent an operation to be performed on the data stored in the remaining
[0076]さらに、ソース開始アドレス及びサイズが、動作の対象になるべき、対応するストレージブロック931、932、933の残りの部分935内に格納されたデータを指し、そのサイズを示す(それぞれ)ことができる。さらに、動作が、データの置換/変更などを要求する状況では、データ自体を、差情報の構成要素として格納することができる。更に別のオプションとして、圧縮アルゴリズムを、より効率的なストレージのために差情報に適用することができる。別のオプションとして、動作がデータの移動を要求する状況では、データが元のストレージブロックに含まれているので、必ずしもデータ自体ではなく、データのソース位置を指定することができる。
[0076] Further, the source start address and size refer to the data stored in the remaining
[0077]別の実施形態では、新しい動作を、適応的に作成することができる。例えば、第1動作の繰り返しシーケンスを、新しい第2動作によって置換することができる。そのような新しい第2動作は、第1動作のシーケンスを記述するものであってもよい。このように、新しい動作を適応的に作成することができ、システム900が、新しい応用例にそれ自体を最適に適応させることができる。
[0077] In another embodiment, new actions can be created adaptively. For example, the repeating sequence of the first action can be replaced by a new second action. Such a new second action may describe a sequence of the first actions. In this way, new actions can be created adaptively and
[0078]もちろん、表1のデータ構造は、例示のみのために示したものであって、いかなる形であれ限定的と解釈されてはならない。例えば、差情報のインスタンスを、単純に、置換されるデータに含める(複雑なコマンドなどを伴わずに)ことができる。 [0078] Of course, the data structure in Table 1 is shown for illustrative purposes only and should not be construed as limiting in any way. For example, an instance of difference information can simply be included in the data to be replaced (without complicated commands or the like).
[0079]さらに、メモリ内の書込み動作を減らすために、装置910が設けられている。かかる装置910は、複数の一体化バッファ921、922、923を含む一体化メモリ920を含んでいる。一実施形態では、一体化バッファ921、922、923のそれぞれのサイズを、所定のサイズ(例えば、4Kbなど)を有するものとすることができる。当該所定のサイズは、単一の動作でストレージブロック931、932、933のそれぞれに書き込み得る最小ブロック部分に相関するサイズであってもよい。さらに、様々な実施形態では、一体化バッファ921は、オンチップストレージ、外部メモリ、DRAM、SRAMなどであってもよい。
[0079] Furthermore, an
[0080]すぐに明白になるように、一体化メモリバッファ921、922、923は、それぞれ、対応するストレージブロック931、932、933の差情報(例えば、表1を参照されたい)のインスタンスを保持する。即ち、複数の一体化メモリバッファうちの第1のバッファ921は、複数のストレージブロックのうちの第1のブロック931の差情報のインスタンスを保持し、複数の一体化メモリバッファのうちの第2のバッファ922は、複数のストレージブロックのうちの第2のブロック932の差情報のインスタンスを保持し、複数の一体化メモリバッファのうちの第3のバッファ923は、複数のストレージブロックのうちの第3のブロック933の差情報のインスタンスを保持し、以下同様である。
[0080] As will be readily apparent, the
[0081]装置910は、バス914を介して一体化メモリ920に結合された更新モジュール912を更に含んでいる。更新モジュール912は、一体化メモリバッファ921、922、923に格納された差情報を対応するストレージブロック931、932、及び933に書き込むためのものである。一実施形態では、そのような書込みは、一体化メモリバッファ921、922、923のうちの一つに差情報の少なくとも一つのインスタンスが書き込まれる(したがって、ストレージブロック931、932、及び933のうち適当な一つへの最小書込みサイズを構成する)時に開始し得る。この書込みを達成するために、更新モジュール912は、バス915を介してストレージデバイス930に結合されている。更に図示するように、更新モジュール912の出力は、読取り経路903を介してI/Oバス902に結合されている。
[0081]
[0082]さらに、差計算モジュール911が、読取り経路バス903を介して更新モジュール912に結合され、書込み経路バス904を介してI/Oバス902に結合され、さらに、バス913を介して一体化メモリ920に結合されている。使用中に、差計算モジュール911は、ストレージデバイス930からデータを読み取ることができ、さらに、関連するストレージブロック931、932、及び933及び/又は一体化メモリバッファ921、922、923からの差情報を使用して、そのようなデータの現在の状態を再構成することができる。
[0082] Further, a
[0083]差計算モジュール911は、必要に応じて、まずデータの現在の状態を再構成し(上の読取り動作に類似する)、そのような現在の状態と書込み動作(コンピュータ901によって開始される)の後に生じる状態との間の差を特定し、関連するストレージブロック931、932、及び933を更新するのに使用される差情報の一以上のインスタンスを一体化メモリバッファ921、922、923に移植することによって、そのようなデータをストレージデバイス930に書きこむことが更に可能である。そのような読取り動作及び書込み動作に関するさらなる情報を、以下、図10及び11の説明中に示す。
[0083] The
[0084]様々な実施形態では、差計算モジュール911は、前述の差を特定するために任意の所望の技法を使用することができる。例えば、様々なストリング照合アルゴリズム、データ移動推定技法などを、例えば利用することができる。さらなる追加の実施形態では、差を、バイト単位で求めることができる。
[0084] In various embodiments, the
[0085]さらに、差の計算は、どのバイトストリングが挿入されるかを検出すること、どのバイトストリングが削除されるかを検出すること、どのバイトストリングが置換されるかを検出すること、どのバイトストリングがコピーされるかを検出すること、バイトストリングが値の追加によって更新されるか否かを判定すること、ストレージブロックのコピーを検出しそれらへの参照を作成すること、ブロック分割を検出すること、ブロック結合を検出することなどのうちの任意の一以上のステップを用いてもよい。 [0085] Further, the difference calculation detects which byte string is inserted, detects which byte string is deleted, detects which byte string is replaced, which Detect whether byte strings are copied, determine whether byte strings are updated by adding values, detect copies of storage blocks and create references to them, detect block splits Any one or more of the following steps may be used: detecting a block combination.
[0086]図10は、一実施形態による、差情報を使用してメモリを読み取る方法1000を示している。オプションとして、この方法1000を、図9のシステム900を使用して実行し、及び/又は更なるオプションでは、必要に応じて図1〜8の技法のいずれかを組み込むことができる。しかし、もちろん、方法1000を、任意の所望の態様で使用してもよい。ここでも、前述の定義が、この説明中にあてはまり得る。
[0086] FIG. 10 illustrates a
[0087]図示するように、方法1000は、コンピュータ(例えば、コンピュータ901など)による要求に従ってストレージ(例えば、ストレージデバイス930など)からブロック(例えば、図9のブロック931、932、933など)を読み取ることによって動作1001で開始し得る。読み取られたストレージブロックデータは、次に、更新モジュール(例えば、更新モジュール912など)に送られる。次に、読取り動作に応答して、差情報が、ストレージブロック(コンピュータ要求に関連する)に対応する一体化バッファ(例えば、合体するバッファ921、922、923など)から及び/又はストレージブロック自体から読み取られる。動作1002を参照されたい。差情報の適当なソースは、要求された情報が一体化バッファから対応するストレージブロックに読取り要求時に書き込まれたか否かに依存し得る。オプションとして、差情報を、フラッシュ内のデータの間に散在させることができる。さらに、特定のデータに関する差を、一以上のグループにグループ化してもよい。
[0087] As illustrated, the
[0088]次に、動作1003で、更新モジュールは、動作1001で読み取られた対応のブロックに対して、動作1002からの差情報に反映された差を適用する。このために、動作1003で再構成されたデータを、読取り経路(例えば、読取り経路903など)を介してコンピュータに送ることができる。動作1004を参照されたい。
[0088] Next, at
[0089]様々な実施形態では、前述のデータ読取り動作は、論理ストレージブロック番号から物理ストレージブロック番号へのマッピングを含み得る。さらに、方法1000は、読取りに関連する誤り検出及び誤り訂正を提供することができる。そのような読取りデータの誤り検出及び誤り訂正は、さらに、データを回復し、回復されたデータを別のストレージ位置に再配置することを試みる再読取り動作を含むことができる。例えば、回復されたデータのそのような再配置は、論理ストレージブロック変換を用いることができ、及び/又は候補ストレージブロックの誤り率情報に基づくものとすることができる。
[0089] In various embodiments, the data read operation described above may include a mapping from logical storage block numbers to physical storage block numbers. Further, the
[0090]図11は、一実施形態による、差情報を使用してメモリに書き込む方法1100を示している。オプションとして、この方法1100を、図9のシステム900を使用して実行し、及び/又は、更なるオプションでは、必要に応じて図1〜8、10の技法のいずれかを組み込むことができる。しかし、もちろん、方法1100を、任意の所望の態様で使用してもよい。さらに、前述の定義が、この説明中にあてはまり得る。
[0090] FIG. 11 illustrates a
[0091]図10の読取り方法1000に類似して、方法1100は、コンピュータ(例えば、コンピュータ901など)による書込み要求の対象であるストレージ(例えば、ストレージデバイス930など)からブロック(例えば、図9のブロック931、932、933など)を読み取ることによって、動作1101で開始し得る。読み取られたストレージブロックデータは、その後、更新モジュール(例えば、更新モジュール912など)に送られる。次に、動作1102で、差情報を、ストレージブロック(コンピュータ要求に関連する)に対応する一体化バッファ(例えば、合体するバッファ921、922、923など)から及び/又はストレージブロック自体から読み取る。次に、動作1103で、更新モジュールが、動作1101で読み取られた対応のブロックに動作1102からの差情報に反映された差を適用して、読み取られ又は書き込まれるデータを再構成する。
[0091] Similar to the
[0092]このために、動作1103で再構成されるデータを、差計算モジュール(例えば、差計算モジュール911など)に送り、コンピュータによって要求された書込み動作の実行から生じるはずのデータの状態と比較することができる。動作1104を参照されたい。このために、再構成されたデータと書込み動作の実行から生じるはずのデータの状態との間の差が、特定される。一実施形態では、そのような差は、データを更新するためのアプリケーション(コンピュータ上で動作する)によって引き起こされる可能性がある。そのような更新は、バイトのストリングの置換、バイトのストリングの挿入、バイトのストリングの削除、バイトのストリングのコピーなどを含むことができるが、これらに限定はされない。
[0092] To this end, the data reconstructed in
[0093]動作1105では、動作1104で計算された差に関連する差情報を、動作1104で計算された少なくとも一つの差が存在するブロックに対応する適切な一体化バッファに付加することができる。そのような付加は、一体化メモリ内の一体化バッファの末尾に書き込むことによって達成することができる。一実施形態では、そのような付加は、さらに、一体化バッファの圧縮解除、データの付加、及び適当な一体化バッファの再圧縮を含むことができる。オプションとして、一体化バッファメモリを、オンデマンドで一体化バッファに再割振りすることができる。
[0093] In
[0094]オプションの実施形態では、差情報を、データに対して実行される機能(例えば、書込みなど)を記述する動作として格納することができる。例えば、差情報は、Bツリー内で実行される動作から生じる変化を反映することができ、したがって、そのような動作に関する差を表すことができる。そのようなBツリーは、オプションで、データベース、メールサーバ、ファイルシステムなどによって利用することができる。 [0094] In an optional embodiment, the difference information may be stored as an operation that describes a function (eg, writing) performed on the data. For example, the difference information can reflect changes resulting from operations performed within the B-tree, and thus can represent differences for such operations. Such B-trees can optionally be used by databases, mail servers, file systems, and the like.
[0095]次に、判断1106で、一体化バッファをテストして、それらが満杯であるかどうかを判定する。どの一体化バッファも満杯ではない場合に、方法1100は、動作1110に進む。一方で、少なくとも一つの一体化バッファが満杯である場合には、方法1100は、動作1107に進む。動作1107では、全ての満杯の一体化バッファを、差情報に付加する。さらに、そのような満杯の一体化バッファは、動作1112に示すように空にされる(再利用などのために)。
[0095] Next,
[0096]さらに、差情報が満杯であるか否かを判定する(動作1114)。方法1100は、差情報が満杯ではないと判定される場合には動作1110に進む。しかし、差情報が満杯であるとの判定に応答して、差情報からの変化をデータに適用する。動作1116に留意されたい。さらに、動作1118に示すように、適用された変更を有するデータのブロックを書き込み、古いデータを破棄する。さらに、動作1120に示すように、差情報を空にする。このために、書き込みを減らし、ブロックに基づくストレージの信頼性を改善するためにメモリブロックにまたがって書き込みを分散させるために、書き込まれるデータと既存データとの間の差を使用するデータストレージシステムを、提供することができる。
[0096] Further, it is determined whether the difference information is full (operation 1114).
[0097]様々な実施形態では、前述の実施形態で述べたメモリは、機械的ストレージデバイス(例えば、SATAディスクドライブ、SASディスクドライブ、ファイバチャネルディスクドライブ、IDEディスクドライブ、ATAディスクドライブ、CEディスクドライブ、USBディスクドライブ、スマートカードディスクドライブ、MMCディスクドライブなど)及び/又は非機械的ストレージデバイス(例えば、半導体に基づくものなど)を含むことができる。そのような非機械的メモリは、例えば、揮発性メモリ又は不揮発性メモリを含むことができる。様々な実施形態では、不揮発性メモリデバイスは、フラッシュメモリを含むことができる(例えば、セルあたり単一ビットのNORフラッシュメモリ、セルあたり複数ビットのNORフラッシュメモリ、セルあたり単一ビットのNANDフラッシュメモリ、セルあたり複数ビットのNANDフラッシュメモリ、セルあたり複数レベル複数ビットのNANDフラッシュ、大ブロックフラッシュメモリなど)。メモリの様々な例を本明細書で示すが、様々な原理を、その寿命がそれに対して実行される様々な動作に起因して減らされ得る任意のタイプのメモリに適用できることに留意されたい。 [0097] In various embodiments, the memory described in the previous embodiments is a mechanical storage device (eg, SATA disk drive, SAS disk drive, Fiber Channel disk drive, IDE disk drive, ATA disk drive, CE disk drive). USB disk drives, smart card disk drives, MMC disk drives, etc.) and / or non-mechanical storage devices (eg, semiconductor based ones). Such non-mechanical memory can include, for example, volatile memory or non-volatile memory. In various embodiments, the non-volatile memory device can include flash memory (eg, single bit NOR flash memory per cell, multiple bit NOR flash memory per cell, single bit NAND flash memory per cell) Multi-bit NAND flash memory per cell, multi-level multi-bit NAND flash per cell, large block flash memory, etc.). Although various examples of memory are shown herein, it should be noted that various principles can be applied to any type of memory whose lifetime can be reduced due to various operations performed thereon.
[0098]図12は、様々なアーキテクチャ及び/又は様々な前の実施形態の機能を実施できる例示的システム1200を示している。例えば、例示的システム1200は、前の実施形態のいくつかで示したコンピュータであってもよい。また、上に示した様々な装置を、システム1200のコンポーネントとしてもよい。
[0098] FIG. 12 illustrates an
[0099]図示するように、システム1200は、通信バス1202に接続された少なくとも一つのホストプロセッサ1201を含んで提供される。また、システム1200は、メインメモリ1204を含む。制御論理(ソフトウェア)及びデータが、メインメモリ1204に格納され、メインメモリ1204は、ランダムアクセスメモリ(RAM)の形をとることができる。
[0099] As shown, a
[00100]システム1200は、また、グラフィックスプロセッサ1206及びディスプレイ1208すなわちコンピュータモニタを含む。システム1200は、二次ストレージ1210を含むこともできる。二次ストレージ1210は、例えば、ハードディスクドライブ及び/又は、フロッピディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表すリムーバブルストレージドライブを含む。リムーバブルストレージドライブは、周知の方法でリムーバブルストレージモジュールから読み取り、及び/又はこれに書き込む。
[00100] The
[00101]コンピュータプログラム、又はコンピュータ制御論理アルゴリズムを、メインメモリ1204及び/又は二次ストレージ1210に格納することができる。そのようなコンピュータプログラムは、実行時に、システム1200が様々な機能を実行することを可能にする。メモリ1204、ストレージ1210、及び/又は任意の他のストレージは、コンピュータ可読媒体の可能な例である。
[00101] Computer programs or computer control logic algorithms may be stored in
[00102]一実施形態で、様々な前の図面のアーキテクチャ及び/又は機能を、ホストプロセッサ1201、グラフィックスプロセッサ1206、二次ストレージ1210、ホストプロセッサ1201とグラフィックスプロセッサ1206の双方の能力の少なくとも一部が可能な集積回路(図示せず)、チップセット(すなわち、関連する機能を実行するモジュールとして働くように設計され、そのようなモジュールとして販売される集積回路のグループなど)、並びに/或いは、さらに言えば任意の他の集積回路で実施することができる。
[00102] In one embodiment, the architecture and / or functionality of the various previous drawings is changed to at least one of the capabilities of the
[00103]さらに、様々な先述の図面のアーキテクチャ及び/又は機能を、汎用コンピュータシステム、回路基板システム、エンターテイメント目的の専用ゲーム機システム、特定用途向けシステム、及び/又は任意の他の所望のシステムで実施することができる。例えば、システム1200は、デスクトップコンピュータ、ラップトップコンピュータ、及び/又は任意の他のタイプの論理の形態をとることができる。さらに、システム1200は、携帯情報端末(PDA)デバイス、携帯電話機デバイス、テレビジョンなどを含むがこれらに限定はされない様々な他のデバイスの形態をとることができる。
[00103] In addition, the architecture and / or functionality of the various previous drawings may be used in general purpose computer systems, circuit board systems, dedicated gaming machine systems for entertainment purposes, application specific systems, and / or any other desired system. Can be implemented. For example,
[00104]さらに、図示しないが、システム1200を、通信のためにネットワーク[例えば、遠隔通信ネットワーク、ローカルエリアネットワーク(LAN)、無線ネットワーク、インターネットなどの広域ネットワーク(WAN)、ピアツーピアネットワーク、ケーブルネットワークなど]に結合することができる。
[00104] Further, although not shown,
[00105]様々な実施形態を上に説明したが、これらが、限定ではなく例としてのみ提供されたことを理解されたい。したがって、好ましい実施形態の広さ及び範囲は、上に説明した例示的実施形態によって限定されるのではなく、添付の特許請求の範囲及びその均等物に従ってのみ定義されなければならない。 [00105] While various embodiments have been described above, it should be understood that these are provided by way of example only and not limitation. Accordingly, the breadth and scope of the preferred embodiments should not be limited by the exemplary embodiments described above, but should be defined only in accordance with the appended claims and their equivalents.
Claims (22)
少なくとも一つのメモリデバイスと、
を備えるシステムであって、前記コントローラは、
前記少なくとも一つのメモリデバイスの複数のメモリデバイス部分の各々の寿命に関連する少なくとも一つの特徴を特定し、
前記複数のメモリデバイス部分のうち第1の一組のデータを格納する第1のメモリデバイス部分の寿命に関連する特徴が、前記複数のメモリデバイス部分のうち第2のメモリデバイス部分の寿命に関連する特徴を超えていることを判定し、
前記複数のメモリデバイス部分のうち第1の一組のデータを格納する第1のメモリデバイス部分の寿命に関連する特徴が、前記複数のメモリデバイス部分のうち第2のメモリデバイス部分の寿命に関連する特徴を超えているか否かの判定に応答して、前記第1の一組のデータを前記第1のメモリデバイス部分から前記第2のメモリデバイス部分に移動する
ことが可能であり、
前記第1のメモリデバイス部分及び前記第2のメモリデバイス部分は、前記少なくとも一つのメモリデバイスのうち同じメモリデバイスの部分である、システム。 A controller,
At least one memory device;
The controller comprises:
Identifying at least one characteristic associated with a lifetime of each of a plurality of memory device portions of the at least one memory device;
A feature associated with a lifetime of a first memory device portion that stores a first set of data among the plurality of memory device portions is associated with a lifetime of a second memory device portion of the plurality of memory device portions. Determine that it exceeds the features
A feature associated with a lifetime of a first memory device portion that stores a first set of data among the plurality of memory device portions is associated with a lifetime of a second memory device portion of the plurality of memory device portions. In response to determining whether or not the feature is exceeded, the first set of data can be moved from the first memory device portion to the second memory device portion;
The system wherein the first memory device portion and the second memory device portion are portions of the same memory device of the at least one memory device.
前記複数のメモリデバイス部分のうち第1の一組のデータを格納する第1のメモリデバイス部分の寿命に関連する特徴が、前記複数のメモリデバイス部分のうち第2のメモリデバイス部分の寿命に関連する特徴を超えていることを、少なくとも部分的にコントローラによって判定する手段であって、前記コントローラは、ホストプロセッサ及び前記少なくとも一つのメモリデバイスに接続されている、手段と、
前記判定に応答して、前記第1の一組のデータを前記第1のメモリデバイス部分から前記第2のメモリデバイス部分に移動する手段と、
を備え、
前記第1のメモリデバイス部分及び前記第2のメモリデバイス部分は、前記少なくとも一つのメモリデバイスのうち同じメモリデバイスの部分である、システム。 Means for identifying at least one characteristic associated with a lifetime of each of the plurality of memory device portions of the at least one memory device;
A feature associated with a lifetime of a first memory device portion that stores a first set of data among the plurality of memory device portions is associated with a lifetime of a second memory device portion of the plurality of memory device portions. Means for determining at least in part by a controller that the controller exceeds a feature, wherein the controller is connected to a host processor and the at least one memory device;
Means for moving the first set of data from the first memory device portion to the second memory device portion in response to the determination;
With
The system wherein the first memory device portion and the second memory device portion are portions of the same memory device of the at least one memory device.
少なくとも一つのメモリデバイスの複数のメモリデバイス部分の各々の寿命に関連する少なくとも一つの特徴を特定するためのコンピュータコードと、
前記複数のメモリデバイス部分のうち第1の一組のデータを格納する第1のメモリデバイス部分の寿命に関連する特徴が、前記複数のメモリデバイス部分のうち第2のメモリデバイス部分の寿命に関連する特徴を超えていることを判定するためのコンピュータコードと、
前記複数のメモリデバイス部分のうち第1の一組のデータを格納する第1のメモリデバイス部分の寿命に関連する特徴が、前記複数のメモリデバイス部分のうち第2のメモリデバイス部分の寿命に関連する特徴を超えているか否かの判定に応答して、前記第1の一組のデータを前記第1のメモリデバイス部分から前記第2のメモリデバイス部分に移動するためのコンピュータコードと
を含む機能を有効にするコンピュータプログラム製品であって、
前記第1のメモリデバイス部分及び前記第2のメモリデバイス部分は、前記少なくとも一つのメモリデバイスのうちの同じメモリデバイスの部分である、コンピュータプログラム製品。 When implemented on a tangible computer-readable medium and executed by a computer processor,
Computer code for identifying at least one characteristic associated with a lifetime of each of the plurality of memory device portions of the at least one memory device;
A feature associated with a lifetime of a first memory device portion that stores a first set of data among the plurality of memory device portions is associated with a lifetime of a second memory device portion of the plurality of memory device portions. Computer code for determining that the characteristic exceeds
A feature associated with a lifetime of a first memory device portion that stores a first set of data among the plurality of memory device portions is associated with a lifetime of a second memory device portion of the plurality of memory device portions. A computer code for moving the first set of data from the first memory device portion to the second memory device portion in response to determining whether or not the feature is exceeded. A computer program product that enables
The computer program product, wherein the first memory device portion and the second memory device portion are portions of the same memory device of the at least one memory device.
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86084306P | 2006-11-24 | 2006-11-24 | |
US60/860,843 | 2006-11-24 | ||
US87824207P | 2007-01-03 | 2007-01-03 | |
US60/878,242 | 2007-01-03 | ||
US11/852,117 | 2007-09-07 | ||
US11/852,104 US7904619B2 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for reducing memory write operations using difference information |
US11/852,117 US7747813B2 (en) | 2006-11-24 | 2007-09-07 | Multi-memory device system and method for managing a lifetime thereof |
US11/852,082 | 2007-09-07 | ||
US11/852,129 US7904764B2 (en) | 2006-11-24 | 2007-09-07 | Memory lifetime gauging system, method and computer program product |
US11/852,082 US7809900B2 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US11/852,129 | 2007-09-07 | ||
US11/852,138 US20080126685A1 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for reducing memory write operations using an instruction set |
US11/852,138 | 2007-09-07 | ||
US11/852,104 | 2007-09-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012243564A Division JP5448013B2 (en) | 2006-11-24 | 2012-11-05 | System, method, and computer program product for delaying operations that reduce memory life |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014078262A true JP2014078262A (en) | 2014-05-01 |
Family
ID=39430372
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009538408A Expired - Fee Related JP5171840B2 (en) | 2006-11-24 | 2007-11-21 | Method and storage system for delaying operation to shorten memory life |
JP2012243564A Expired - Fee Related JP5448013B2 (en) | 2006-11-24 | 2012-11-05 | System, method, and computer program product for delaying operations that reduce memory life |
JP2013261095A Expired - Fee Related JP5814335B2 (en) | 2006-11-24 | 2013-12-18 | Reduction of writing and estimation and display of remaining life of nonvolatile memory |
JP2013261097A Pending JP2014078262A (en) | 2006-11-24 | 2013-12-18 | Techniques for multi-memory device lifetime management |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009538408A Expired - Fee Related JP5171840B2 (en) | 2006-11-24 | 2007-11-21 | Method and storage system for delaying operation to shorten memory life |
JP2012243564A Expired - Fee Related JP5448013B2 (en) | 2006-11-24 | 2012-11-05 | System, method, and computer program product for delaying operations that reduce memory life |
JP2013261095A Expired - Fee Related JP5814335B2 (en) | 2006-11-24 | 2013-12-18 | Reduction of writing and estimation and display of remaining life of nonvolatile memory |
Country Status (4)
Country | Link |
---|---|
JP (4) | JP5171840B2 (en) |
CN (1) | CN101578587B (en) |
TW (1) | TWI475569B (en) |
WO (1) | WO2008063647A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037172B2 (en) | 2016-02-09 | 2018-07-31 | Toshiba Memory Corporation | Memory system and controlling method |
Families Citing this family (15)
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 |
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 |
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 |
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 |
US8291152B2 (en) * | 2009-01-07 | 2012-10-16 | Silicon Motion, Inc. | Method for operating non-volatile memory and data storage system using the same |
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 |
US8392648B2 (en) * | 2009-07-22 | 2013-03-05 | Hitachi, Ltd. | Storage system having a plurality of flash packages |
JP5002719B1 (en) | 2011-03-10 | 2012-08-15 | 株式会社東芝 | Information processing device, external storage device, host device, relay device, control program, and information processing device control method |
JP5405513B2 (en) | 2011-03-22 | 2014-02-05 | 株式会社東芝 | MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD, AND PROGRAM |
EP2745203B1 (en) | 2011-08-19 | 2016-09-21 | Kabushiki Kaisha Toshiba | Information processing apparatus |
US9064579B2 (en) | 2012-07-16 | 2015-06-23 | Kabushiki Kaisha Toshiba | Semiconductor memory apparatus, data transmission device, and recording method |
CN106980566B (en) * | 2017-03-27 | 2020-05-26 | 联想(北京)有限公司 | Display control method and storage device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06338195A (en) * | 1993-05-31 | 1994-12-06 | Nec Corp | Device for managing number of writing times of electrically erasable nonvolatile memory |
JPH113287A (en) * | 1997-06-12 | 1999-01-06 | Hitachi Ltd | Storage device and storage area management method used for the device |
JP2004151944A (en) * | 2002-10-30 | 2004-05-27 | Denso Corp | Method for writing data in non-volatile storage device, its program and device, and onboard electronic controller |
JP2004341989A (en) * | 2003-05-19 | 2004-12-02 | Matsushita Electric Ind Co Ltd | Memory card pack and memory card |
JP2005227919A (en) * | 2004-02-12 | 2005-08-25 | Nec Corp | File recording method and file system |
JP2006236210A (en) * | 2005-02-28 | 2006-09-07 | Oki Data Corp | Memory writing device |
JP2006235960A (en) * | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | Method for increasing speed of garbage collection |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0573435A (en) * | 1991-09-12 | 1993-03-26 | Nagano Oki Denki Kk | Storage element monitoring/protecting device |
JP3938208B2 (en) * | 1991-11-28 | 2007-06-27 | 株式会社日立製作所 | Information equipment with flash memory |
JPH0764868A (en) * | 1993-08-24 | 1995-03-10 | Melco:Kk | Storage updating device |
JPH0765592A (en) * | 1993-08-25 | 1995-03-10 | Nec Corp | Nonvolatile memory |
JPH09237162A (en) * | 1996-02-23 | 1997-09-09 | Hewlett Packard Co <Hp> | Scanning data storage system, its stylus and medium abrasion managing methods and remaining life display device |
JPH10187548A (en) * | 1996-12-24 | 1998-07-21 | Toyota Autom Loom Works Ltd | Storage device |
JP4079506B2 (en) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | Method for controlling nonvolatile semiconductor memory system |
JP3557511B2 (en) * | 1997-08-27 | 2004-08-25 | 沖電気工業株式会社 | Semiconductor disk drive life calculation method |
JP3544859B2 (en) * | 1998-05-11 | 2004-07-21 | 富士通株式会社 | Secondary storage device using nonvolatile semiconductor memory |
JP3242890B2 (en) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | Storage device |
US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
US7130807B1 (en) * | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
TW520514B (en) * | 2001-08-02 | 2003-02-11 | Macronix Int Co Ltd | Circuit and method of qualification test for non-volatile 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 |
KR100484485B1 (en) * | 2002-10-01 | 2005-04-20 | 한국전자통신연구원 | Method for storing data in non-volatile memory and apparatus therefor |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
JP2004145934A (en) * | 2002-10-22 | 2004-05-20 | Matsushita Electric Ind Co Ltd | Disk storage device and system thereof |
US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
TWI220031B (en) * | 2003-07-01 | 2004-08-01 | Delta Electronics Inc | Method and apparatus for time-relevant accessing a non-volatile memory in an electrical equipment |
US7480760B2 (en) * | 2003-12-17 | 2009-01-20 | Wegener Communications, Inc. | Rotational use of memory to minimize write cycles |
JP4527456B2 (en) * | 2004-07-06 | 2010-08-18 | Necインフロンティア株式会社 | Memory life warning device and information processing method |
JP2006092070A (en) * | 2004-09-22 | 2006-04-06 | Nec Corp | Disk array device, its control method and control program |
WO2006052904A2 (en) * | 2004-11-08 | 2006-05-18 | Innopath Software, Inc. | Updating compressed read-only memory file system (cramfs) images |
TWI257044B (en) * | 2004-11-26 | 2006-06-21 | Hon Hai Prec Ind Co Ltd | Apparatus and method for prolonging useful life of non-volatile memory |
US7447944B2 (en) * | 2005-04-29 | 2008-11-04 | Freescale Semiconductor, Inc. | Predictive methods and apparatus for non-volatile memory |
-
2007
- 2007-11-21 JP JP2009538408A patent/JP5171840B2/en not_active Expired - Fee Related
- 2007-11-21 CN CN200780043176.3A patent/CN101578587B/en active Active
- 2007-11-21 WO PCT/US2007/024295 patent/WO2008063647A2/en active Application Filing
- 2007-11-22 TW TW096144306A patent/TWI475569B/en not_active IP Right Cessation
-
2012
- 2012-11-05 JP JP2012243564A patent/JP5448013B2/en not_active Expired - Fee Related
-
2013
- 2013-12-18 JP JP2013261095A patent/JP5814335B2/en not_active Expired - Fee Related
- 2013-12-18 JP JP2013261097A patent/JP2014078262A/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06338195A (en) * | 1993-05-31 | 1994-12-06 | Nec Corp | Device for managing number of writing times of electrically erasable nonvolatile memory |
JPH113287A (en) * | 1997-06-12 | 1999-01-06 | Hitachi Ltd | Storage device and storage area management method used for the device |
JP2004151944A (en) * | 2002-10-30 | 2004-05-27 | Denso Corp | Method for writing data in non-volatile storage device, its program and device, and onboard electronic controller |
JP2004341989A (en) * | 2003-05-19 | 2004-12-02 | Matsushita Electric Ind Co Ltd | Memory card pack and memory card |
JP2005227919A (en) * | 2004-02-12 | 2005-08-25 | Nec Corp | File recording method and file system |
JP2006235960A (en) * | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | Method for increasing speed of garbage collection |
JP2006236210A (en) * | 2005-02-28 | 2006-09-07 | Oki Data Corp | Memory writing device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037172B2 (en) | 2016-02-09 | 2018-07-31 | Toshiba Memory Corporation | Memory system and controlling method |
US10564901B2 (en) | 2016-02-09 | 2020-02-18 | Toshiba Memory Corporation | Memory system and controlling method |
Also Published As
Publication number | Publication date |
---|---|
JP2013084275A (en) | 2013-05-09 |
CN101578587B (en) | 2015-02-25 |
JP5448013B2 (en) | 2014-03-19 |
JP5171840B2 (en) | 2013-03-27 |
JP2010511225A (en) | 2010-04-08 |
CN101578587A (en) | 2009-11-11 |
TW200834601A (en) | 2008-08-16 |
WO2008063647A9 (en) | 2008-11-27 |
TWI475569B (en) | 2015-03-01 |
WO2008063647A2 (en) | 2008-05-29 |
JP2014089734A (en) | 2014-05-15 |
JP5814335B2 (en) | 2015-11-17 |
WO2008063647A3 (en) | 2008-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5814335B2 (en) | Reduction of writing and estimation and display of remaining life of nonvolatile memory | |
US10732857B2 (en) | Techniques for reducing memory write operations using coalescing memory buffers and difference information | |
US8230183B2 (en) | Techniques for prolonging a lifetime of memory by controlling operations that affect the lifetime of the memory | |
US7747813B2 (en) | Multi-memory device system and method for managing a lifetime thereof | |
US8171356B2 (en) | Reducing writes, and estimating and displaying estimated remaining lifetime of non-volatile memories | |
US10318181B2 (en) | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory | |
US20080126685A1 (en) | System, method, and computer program product for reducing memory write operations using an instruction set | |
US9916087B2 (en) | Method and system for throttling bandwidth based on temperature | |
JP4487978B2 (en) | Semiconductor memory device management system, program, and semiconductor memory device management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140304 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20140115 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140602 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140605 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140702 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140707 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140731 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140805 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150331 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150630 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20150702 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150729 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150828 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20151208 |