JP2012523599A - 有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法およびシステム - Google Patents

有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法およびシステム Download PDF

Info

Publication number
JP2012523599A
JP2012523599A JP2012503953A JP2012503953A JP2012523599A JP 2012523599 A JP2012523599 A JP 2012523599A JP 2012503953 A JP2012503953 A JP 2012503953A JP 2012503953 A JP2012503953 A JP 2012503953A JP 2012523599 A JP2012523599 A JP 2012523599A
Authority
JP
Japan
Prior art keywords
monitor data
data
memory
computer
memory devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012503953A
Other languages
English (en)
Other versions
JP5596123B2 (ja
JP2012523599A5 (ja
Inventor
カベラック、ウィリアム、ジョン
ヘッツラー、スティーブン、ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012523599A publication Critical patent/JP2012523599A/ja
Publication of JP2012523599A5 publication Critical patent/JP2012523599A5/ja
Application granted granted Critical
Publication of JP5596123B2 publication Critical patent/JP5596123B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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
    • 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
    • G11C2029/0409Online test

Abstract

【課題】
有限の耐久性または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法、システム、およびコンピュータ・プログラムを提供する。
【解決手段】
本発明による方法は、有限の耐久性および/または持続性を有する複数のメモリ装置からモニタ・データの情報を収集するステップであって、モニタ・データは既知に書込みサイクルの数を専用のメモリ・セルに格納された既知の内容のデータである、ステップと、そのモニタ・データの情報を分析するステップと、その分析するステップに基づいてメモリ装置の少なくとも1つに関してアクションを取るステップとを含む。更なるシステム、方法、およびコンピュータ・プログラムも開示される。
【選択図】 図1

Description

本発明は、一般的にはメモリ装置に関し、詳しく云えば、有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報の分析に関するものである。
NANDフラッシュ・メモリ装置のような幾つかのメモリ装置は、有限の書き込み/消去耐久性および/または制限されたデータ持続性を有する。そのようなメモリの現在の有用性および信頼性を評価するためには、多くの場合、書き込み/消去の耐久性および/またはデータ持続性を追跡することが望ましい。しかし、提案されている解決策は、そのようなメモリ装置に関連したこれらのおよび/または他の問題点に対する満足すべき解決策は提供するものではない。
本発明の目的は、上記のようなメモリ装置に関連した問題点に対する満足すべき解決策を提供することにある。
1つの実施例による方法は、有限の耐久性および/または持続性を有する複数のメモリ装置からモニタ・データの情報を収集するステップであって、そのモニタ・データは既知の書き込みサイクルの数を専用のメモリ・セルに格納された既知の内容のデータである、ステップと、そのモニタ・データの情報を分析するステップと、その分析するステップに基づいてメモリ装置の少なくとも1つに関してアクションを取るステップとを含む。
1つの実施例によるコンピュータ・プログラムは、コンピュータ使用可能プログラム・コードを組み込んだコンピュータ使用可能媒体に含まれる。コンピュータ使用可能プログラム・コードは、有限の耐久性および/または持続性を有する複数のメモリ装置から収集するように構成されたコンピュータ使用可能プログラム・コードであって、そのモニタ・データは既知の書き込みサイクルの数を専用のメモリ・セルに格納された既知の内容のデータである、コンピュータ使用可能プログラム・コードと、そのモニタ・データの情報を分析するように構成されたコンピュータ使用可能プログラム・コードと、その分析するステップに基づいてそれらのメモリ装置の少なくとも1つに関してアクションを取るように構成されたコンピュータ使用可能プログラム・コードと、を含む。
別の実施例による方法は、有限の耐久性および/または持続性を有する複数のメモリ装置からモニタ・データの情報を収集するステップであって、そのモニタ・データは既知の書き込みサイクルの数の専用メモリ・セルに格納された既知の内容のデータである、ステップと、そのモニタ・データの情報を分析するステップと、その分析するステップに基づいてメモリ装置の少なくとも1つに関して動作目標を設定するステップと、を含む。
更に別の実施例によるシステムは、有限の耐久性および/または持続性を有する複数のメモリ装置を含み、そのメモリ装置の各々は、複数のメモリ・ブロックを有し、それらのメモリ・ブロックの少なくとも1つがそこにモニタ・データを書き込まれており、その少なくとも1つのメモリ・ブロックがモニタ・データを書き込む前に複数回も書き込まれており、更にそのメモリ装置の各々はそれらのメモリ・ブロックをアドレスするための回路を含む。そのシステムは、更に、メモリ装置とコミュニケーション状態にあるプロセッサおよびそのプロセッサとコミュニケーション状態にあるクロックを含む。
本発明の他の側面および利点が、以下の詳細な記述から明白になるであろう。それらの記述は、それが図面と関連して解釈されるとき、1つの例として本発明の原理を説明するものである。
1つの実施例に従って、フラッシュ・メモリ装置の少なくとも1つのブロックに関する持続動作を決定する方法のフローチャートである。 1つの実施例に従って、フラッシュ・エラー率面の形を示す代表的なプロット図を示す概略図である。 1つの実施例に従って、所与のブロックが、或るデータ・エイジにおける消滅により、セクタ・レベルのエラー訂正コード(ECC)の訂正能力を超える可能性を表す例示的な累積分布関数(CDF)を表わすグラフである。 1つの実施例に従って、或るデータ・エイジにおけるアクセス分布およびCDFの間のオーバーラップを表わすグラフである。 1つの実施例に従って、或る時点におけるユーザ・データおよびモニタ・データに関する代表的なサイクルの数・ヒストグラムを示すグラフである。 モニタ・データ・システムからの1つの可能な測定セットを示すグラフである。 1つの実施例に従って、複数のフラッシュ・メモリ装置からのモニタ・データの情報を分析する方法を示すフローチャートである。 1つの実施例に従って、代表的なストレージ・システムを示すブロック図である。 1つの実施例に従って、結果を表わすグラフである。 1つの実施例に従って、ネットワーク・アーキテクチャーを示す概略図である。 1つの実施例に従って、図10のサーバおよび/またはクライアントに関連付け得る代表的なハードウェア環境を示すブロック図である。
本明細書において開示される方法およびシステムは、有限の耐久性および/または持続性を有する任意のタイプのメモリ装置に関連して具現化され得るし、或いはそのようなメモリ・システムを含み得る。有限の書き込み/消去の耐久性または限定されたデータ持続性を有する説明上のタイプのメモリ装置は、フラッシュ・メモリ、相変化メモリ、強誘電体メモリ等を有する装置を含む。
本明細書に示された教示事項の理解を容易にするために、または、それらの教示事項を背景に置くために、説明の多くがフラッシュ・メモリに関して示され、これは単に例として行われるに過ぎず、限定事項として解釈されるべきではないことは当然である。
NANDフラッシュ・メモリ装置は、有限の書き込み/消去の耐久性および限定されたデータ持続性の両方を有する。破損(wearout)および持続を検知するための現在の技法は、情報技術(IT)および或る消費者アプリケーションにとって不十分な逃げ(escape)率を持つ。逃げという帰結が厳しいこともある。例えば、逃げによってデータが化ける(corrupt)ことがある。
フラッシュ・メモリにおけるエラー率は、それが書き込みサイクルの数およびデータのエイジの両方に依存するので、3D面となる。例えば、図2およびそれに関する説明を参照されたい。セルが完全な故障に追い込まれることがあるので、エラー率は、任意のセクタ・レベルのエラー訂正コード(ECC)の検知能力を超えることがある。これは、化けた(corrupt)データがその後の読み取りオペレーションにおいて有効なものとして送られるという結果を生じ得る。
或る場合には、NAND記憶装置は、最初の損耗事象に至るまでの時間を増加させるために或る形式の損耗均等化を実施し得る。複数のブロックが同時に破損に近づくことがあるので、そのような方法の副次的影響は破損の群生化(clustering)を更に強めるということである。わずかなエラー率をモニタするためにセクタECCを使用することはエイリアシング(aliasing)効果に見舞われることがあり、破損の開始を検知する能力が制限されることがある。
破損を検知するための或る他の技術は同様に精度を欠いている。これらは、成功した消去および成功したプログラミングに関してテストすることを含む。これらの技法は、データ持続時間が100ns以下のオペレーション検証時間よりも長いが、15桁の大きさの広がりである状況を3x1017ns(10年以下の)という上記の耐久時間よりもかなり短い、という状況を検知し得ない。本明細書において提供される少なくともいくつかの実施例は、フラッシュ・メモリ装置の持続の具合(retention behavior)を決定するための技法を提供することによって、これらおよび他の制限に対処する。
図1は、1つの実施例に従って、フラッシュ・メモリ装置の少なくとも1つのブロックに関して持続の具合を決定する方法100を示す。図示のように、モニタ・データがフラッシュ・メモリ装置の少なくとも1つのブロックに書き込まれる。オペレーション102を参照されたい。
フラッシュ・メモリ装置は、メモリのブロックを含む任意のフラッシュ・メモリ装置を含み得る。例えば、1つの実施例では、フラッシュ・メモリ装置はNAND装置であってもよい。
この説明に関連して、モニタ・データによって使用されるデータ・パターンは、知られている任意のデータまたはデータ・パターンを指し得る。例えば、1つの実施例では、モニタ・データは、メモリ・システム、メモリを含むシステム、または別のホスト・システムに知られている値全体を有するデータ・パターンを含み得る。この場合、数、ロケーション、およびパターンによってエラーを特徴づけることが可能である。
更に、1つの実施例では、モニタ・データは生成され得る。この場合、モニタ・データはユーザ・データとして送られるのではなく、ホスト・システムによって内部的に生成され得る。モニタ・データは、いずれの損耗の均等化も回避して、物理ブロックに書き込まれ得る。この方法では、モニタ・データは損耗の均等化を受け得ない。
更に、少なくともブロックの2つが、例えば、フラッシュ・メモリ装置の種々な領域の具合のサンプリングを行うために、相互に物理的に隣接しないというようなフラッシュ・メモリ装置の複数のブロックが、モニタ・データを格納するために選択されることがある。如何なる場合も、モニタ・データは複数のブロック・グループに書き込まれ得るし、その場合、各グループに対して行なわれる書き込みサイクルの数は異なる。
モニタ・データを書き込む前に、少なくとも1つのブロックは何回も書き込まれるかもしれないということに留意されたい。例えば、同じデータが連続的に再書き込みされ得るし、異なるデータが各再書き込み時にその2つ等の組み合わせで書き込まれ得る。従って、そのメモリ装置上に最終的に格納されるモニタ・データは、必ずしも書き込みの各サイクル中に使用されたモニタ・データではないこともあり得る。
或る期間の後、モニタ・データは読み取られる。オペレーション104を参照されたい。その期間は、モニタ・データが書き込まれる時点後の任意の長さの時間(例えば、秒、分、時間、日等)を含み得る。1つの実施例では、この期間は、ユーザまたはシステムが定義した期間を含み得る。オプションとして、その期間は設定可能であってもよい。いずれの方法も、データ・エイジ、期間等を測定するために、ラン・タイム・クロック、リアル・タイム・クロック、カレンダ等の出力が使用され得る。リアル・タイム・クロックの使用は、電源遮断、停電等の期間であっても、データ・エイジが容易に決定され得るという点で有利である。
一旦モニタ・データが読み取られると、その読み取りに基づいて少なくとも1つのブロックの持続具合が決定される。オペレーション106を参照されたい。モニタ・データがホスト・システムに知られている場合、持続具合の決定は、その読み取られたモニタ・データをそれの格納されたバージョンと比較することを含み得る。
更に、モニタ・データの読み取りおよび少なくとも1つのブロックの持続具合の決定は周期的な間隔で生じ得る。この場合、その周期的な間隔は、ユーザによって定義された間隔またはシステムによって自動的に定義された間隔を含み得る。
一旦持続具合が決定されると、その決定の結果が出力される。オペレーション108を参照されたい。1つの実施例では、フラッシュ・メモリ装置またはそれの一部分の操作上の制限が少なくとも1つのブロックにおける持続具合の決定の結果に基づいて決定され得る。オプションとして、動作限界に遭遇すると、書き込みはフラッシュ・メモリ装置またはそれの一部分には最早許可され得ない。
好ましくは、モニタ・データは、その分野で知られた任意の方法によって、例えば、利用可能なデータ・スペースのマッピングからそれを省くことによって、書き込み保護される。1つの実施例では、モニタ・データを有する少なくとも1つのブロックの少なくとも一部分が書き込み保護され得るということに留意されたい。例えば、モニタ・データを有する少なくとも1つのブロックの少なくとも一部分が、ユーザ・データによって上書きされないよう書き込み保護され得る。
1つの方法では、書き込み保護は、メモリ・コントローラにおいて書き込み不能としてブロックをマークすることにより達成され得る。別の方法では、保護されたブロックまたはそれの一部分がフラッシュ・メモリ装置上に格納され得る。更に、1つの実施例では、モニタ・データが、フラッシュ・メモリ装置のメモリ容量の約1%未満を含み得るし、更に好ましくは、約0.5%未満を含み得る。他の実施例では、メモリ容量の0.1%未満がモニタ・データの格納のために使用され得る。方法100を使用すると、フラッシュ・メモリの破損および持続は、フラッシュ・メモリ装置へのモニタ・データの追加によって測定され得る。モニタ・データは、すべての値がホスト・システムに知られているデータ・パターンを含み得る。従って、エラーは、数、ロケーション、およびパターンによって特徴づけられ得る。
いずれかのユーザ・データが高いサイクルの数を得る前に、1セットのブロックがその高いサイクルの数に置かれることがある。このデータを使用して、エラー率面のサンプルが行われ得る。一旦高いサイクルの数に置かれると、モニタ・データは維持具合を測定するために周期的にチェックされ得る。オプションとして、測定された破損およびデータ持続の限界が、自己監視、分析、報告技術(S.M.A.R.T.)によって報告され得る。
上記したように、NANDフラッシュ装置は、消去/書き込みサイクルに対する有限の耐久性および有限のデータ持続性に悩まされることがある。これは、絶縁物を通して電荷を駆動するデータ格納プロセスの可逆性が貧弱なためである。その結果、フラッシュ装置におけるわずかなエラー率が3D面として特徴付けられ得る。
図2は、1つの実施例に従って、フラッシュ・エラー率面の形状を示す代表的なプロット図200を示す。図示のように、X軸は、1ミリ秒から10年までのデータ・エイジを秒で示す。深さ軸は、1サイクルから1x10サイクルまでのサイクルの数を示す。垂直軸はエラー率乗数(error rate multiplier)である。ほとんどのフラッシュ装置のエラー率面は、図2に示されるような一般的な特性を有する。
セルが十分に高いサイクルの数に書かれる場合、それらは完全に(例えば、1/2のエラー率で)障害を生じる。従って、図2に示された面の左後方隅におけるエラー率は、或るサイクルの数で障害まで増加する。更に、データのエイジが増加するとき、低いサイクルの数で障害が生じる。従って、右後方隅におけるエラー率は一層速く障害に進む。ECCまたはECCプラス周期冗長検査(CRC)の設計は、エラー率またはその面の形状を知ることに依存する。
多くのNAND装置は、データ保全性に影響を与え得る多くの問題を有する。これらは、チャージ・デトラッピング(chargedetrapping)、ストレス誘起漏洩電流(SILC)、読み取り妨害及び書き込み妨害、および/または、他の問題を含む。
フラッシュ(例えば、JEDEC、JESD47F等)に関する製造テストは、ITデータ保全には不適切である。SILCテストは、500時間の間に1つのロット当たりわずか38個の装置しか使用しない。そのようなテストにおけるゼロ・エラーは90%の信頼性に対して6%もの高い逃げ率を示す。更に、500時間のテストは、(装置の残り部分が全くテストされないと仮定して)耐久性の限界に対してその装置の最大10%を、わずか100nSのデータ・エイジでテストすることを可能にする。
ITシステム対するデータ保全性の要件は非常に厳しいことがある。化けたデータを戻すことは一般に許容し得ないことである。10M単位年当たり1つ事象というきつくない目標が設定されることがある。10kのIOPS率では、これは、代表的な4kBのIOに対して転送された1ビット当たりの1x10−23の未修正エラー率を与える。従って、規定された耐久性仕様を使ってITフラッシュ・システムを設計することは大きな危険を伴い得る。
損耗の均等化は、耐久性サイクルの数よりも低いフリー・ブロックが存在しなくなるまでの時間を増加させるために利用され得る。フリー・ブロックは、スペアを通して、または、例えば、静的なデータを移動させることによっても得ることが可能である。静的な損耗の均等化アルゴリズムの1つの目標は、耐久性の限界以下のフリー・ブロックまたはフリーになり得るブロックが存在しなくなるまで、サイクルの数を最大にすることである。
理想的な静的損耗均等化アルゴリズムは、いずれの時点でも最も狭い分布を生じるであろう。これは装置に対して最大のサイクルの数を与えるであろう。しかし、この場合、損耗の均等化は、ブロックが損耗していることを判断するためのロバストな技法の存在を仮定している。即ち、損耗の均等化は、破損に関する累積分布関数(CDF)が、唐突の、しかも既知のサイクルの数における始まりを有するということを仮定している。更に、すべてのブロックが同じ破損の特性を有するということも仮定している。更に、持続性の影響は無視される。
図3は、1つの実施例に従って、或るデータ・エイジの時の損耗によって、所与のブロックがセクタ・レベルECCの訂正能力を超える確率を表わす例示的CDF300を示す。セクタ・レベルECCは、ソフト・エラーおよび他の影響から保護するために直ちに利用することが可能である。しかし、ECCの能力に対しては有限の限界があり、ブロック損耗によりこの限界が超えられてしまうことがある。これが起こると、化けたデータは返却され得る。CRCのような追加のセクタ・チェックは、これが起こるポイントを移動させるが、この問題点を排除することはあり得ない。
図3における曲線は、1つの実施例に従って、どのような実際のフィールドの具合が短いデータ・エイジのときにあり得るかを表わしている。10サイクルの耐久性仕様を有する装置を仮定すると、これは、JEDECテスト結果を考慮すれば、6%の確率に割り当てられ得る。この例では、ブロックの94%が10サイクルで機能しなくなるということが仮定された。長いデータ・エイジでは、その曲線は左にシフトするであろう。
図4では、信頼性のインパクトが分かるであろう。図4は、1つの実施例に従って、懸念領域を示す或るデータ・エイジにおけるアクセス分布とCDFとの間のオーバーラップの表示400を示す。
図4を使って、アクセス分布とCDFとの間のオーバーラップを見ることができる。アクセス分布が狭ければ狭いほどブロックの割合が大きくなるということは、破損が注目される前の損耗ゾーンにおいてありそうである。従って、セクタECCの能力が超えられ、化けたデータが戻されるであろうということは大いにありそうである。
これらの問題点および他の問題点に対処するために、エラー率面がフラッシュ装置に関する耐久性および持続性の限界の決定を支援するためにサンプリングされ得る。1つの実施例では、これは損耗の均等化を受けない多くの物理ブロックを保存することによって達成され得る。これらのブロックは、ホスト・システムに知られているデータをその値が十分に検証されるように含み、ECCから決定されたエラー率を使用することに固有の如何なるエイリアシング問題も回避し得る。
更に、そのようなブロックは、データ保全性を損なわずにECC能力を超えたエラー率で使用され得る。モニタ・データもエラー率対持続性を測定するために周期的に検査され得る。
1つの実施例では、CDFの予期された立ち上がりの近くに位置付けられた完全消去ブロックのセットは、それがデータ化けに結びつく前に損耗を決定することを支援するように利用され得る。例えば、フラッシュ装置は、16,000個の消去ブロックを持ち得る。モニタ・データとして15個のブロックを使用することは、装置能力の0.1%未満しか必要としないであろう。
1つのオプションとして、3個のブロックから成る5つのグループとして配列された15個のブロックが利用され得る。各グループは同じサイクルの数を持ち得る。この場合、1つのグループ内に複数のブロックを持つことは測定の質を改善し得る。各グループに対するロケーション(サイクルの数に関する)は、データ保全性に影響を与え得る大きさをCDFが持ち始めると思われる領域に近くなるように選択され得る。
一例として、下記の表1は、1つの実施例に従って、フラッシュ装置を表す特性を示す。
Figure 2012523599
この例では、ブロックを消去する/書き込む/読み取るための時間は138ミリ秒である。従って、5個のモニタ・グループのモニタ・データ目標レイアウトが選択され得る。下記の表2は、1つの実施例に従って、5個のモニタ・グループのモニタ・データ目標レイアウトを表示したものを示す。
Figure 2012523599
この場合、損耗が対数正規の状況を有するということを仮定して、べき乗分布するようにサイクルの数が選ばれる。種々の実施例において、モニタ・データの有効性を最大にするために他の分布を選ぶことも可能である。この例では、すべてのモニタ・データを最後のカウントまで循環させるためには合計50時間が必要であろう。
図5は、1つの実施例に従って、或る時点でユーザ・データおよびモニタ・データのための代表的なサイクルの数ヒストグラム500を示す。この場合、ユーザ・データおよびモニタ・データのヒストグラムは書き込みサイクルの数の関数として示される。更に、データは損耗の均等化を含む。
図示のように、モニタ・データは予期される損耗サイクルの数の近くに置かれる。場合によっては、すべてのモニタ・データ・ブロックを循環させるために必要な時間は、出荷前に行ないたい時間よりも長いことがある。そのような場合、モニタ・データは、現場で生じる循環の残りを、出荷前に部分的に循環させてもよい。
一旦モニタ・データが最終のサイクルの数になれば、ブロックが周期的に読み取られ得るし、読み取られたデータは既知のデータと比較され得る。これは、エラーの完全な識別を可能にし、変化率を維持する能力を含む。
図6は、モニタ・データ・システムからの測定600の1つの可能なセットを示す。各モニタ・グループはカラム・グループとして示され、そのグループにおける各カラムは異なるデータ・エイジを表わす。各カラムの高さは1つのセクタ当たりのエラーの数であり、「ECC限界」と表示された下部領域は可能なECC訂正の限界を表わす。図示されるように、いくつかの測定値はECC能力を超過し、従って、データ保全性に関するリスクを提起し得る。
1つの実施例では、このデータから動作の限界を導出することが可能である。例えば、下記の表3は、1つの実施例に従って図6における例示的データに対して発生され得る動作の限界を示す。
Figure 2012523599
モニタリング・データ・パターンを選することも可能である。種々の実施例において、これは静的なパターンであってもよく、特定のブロックに対して計算されてもよい。オプションとして、耐久性および/または持続性を重視するパターンを利用することも可能である。いずれの場合も、フラッシュ装置から何も読み取らなくても、各モニタ・ブロックの期待された内容を知ることができるように、システムが構成され得る。限界の1つに達するとき、システムは、S.M.A.R.T.フラグによって、または最早書き込みを許容しない(例えば、書き込み時のエラーを戻す等の)ような別の手法によって通知され得る。
上記の説明の多くは、フラッシュ・ブロック全体を含むものとしてモニタ・データ・ユニットを説明したが、上記の技法はフラッシュ・ブロック全体を使用することに限定されない。例えば、1つの実施例では、モニタ・データ・ユニットはセクタ・サイズくらいに小さくてもよい。
セクタ・サイズのモニタ・データ・ユニットを使用することはモニタリング特性を保持するであろうが、場合によっては、これはエクスポージャをハード・エラーに委ねることになり得る。例えば、ページ・サイズのモニタがブロックの残りにおけるユーザ・データによって利用される場合、モニタ・ページがECC限界に近いエラー率を示すと、そのユーザ・データは、失われたもの(即ち、ハード・エラー)としてマークされ得る。これは、セクタECCがそのような状況では信頼し得るものではないためである。しかし、この技法を使用すると、化け事象の可能性は、より低いオーバーヘッドで減少するであろう。
図7は、1つの実施例に従って、複数のフラッシュ・メモリ装置からのモニタ・データの情報を分析する方法700を示す。図示のように、モニタ・データの情報は、複数のフラッシュ・メモリ装置から収集される。なお、モニタ・データは、既知の書き込みサイクルの数の専用メモリ・セルに格納された既知の内容のデータである。オペレーション702を参照されたい。
モニタ・データは、任意のデータまたは既知のデータ・パターンを含み得る。1つの実施例では、モニタ・データの情報は、モニタ・データのデータ・エイジおよび書き込みサイクルの数の少なくとも1つに関するエラー率情報を含み得る。更に、モニタ・データおよび/またはモニタ・データの情報は様々な技法を使って収集され得る。1つの実施例では、モニタ・データは生成されてもよい。
一旦モニタ・データの情報が収集されると、そのモニタ・データの情報は分析される。オペレーション704を参照されたい。更に、分析に基づいて、装置の少なくとも1つに関してアクションが取られる。オペレーション706を参照されたい。
そのアクションは種々のアクションを含み得る。1つの実施例では、アクションを取ることは、装置の少なくとも1つに対する動作目標を設定することを含み得る。この場合、動作目標は、データ書き込みサイクルの数に関する限界であってもよい。別のオプションとして、動作目標はデータ・エイジに対する限界であってもよい。
モニタ・データの情報の収集およびその情報の分析は何回も生じ得るということに留意されたい。例えば、収集するステップおよび分析するステップは少なくとも2回行なわれ得るし、統計上の傾向はそれに基づいて生じ得る。更に、収集するステップおよび分析するステップは少なくとも2回行なわれ得るし、モニタ・データの時間依存性が追跡され得る。
この技法を実施することによって、1セットの装置からモニタ・データの情報を収集すること、そのデータを分析すること、およびその装置に対する動作目標を設定することによって、フラッシュ・ベースのストレージ・システムの信頼性を高めるためのシステムおよび方法が提供され得る。モニタ・データは、各装置に対するサイクルの数およびデータ・エイジに関するエラー率情報を含み得る。更に、動作目標は、サイクルの数およびデータ・エイジに関して装置レベルの限界を設定することを含み得る。多数の装置からのデータを集約することは、サンプル・サイズが増加されることを可能にし、統計的傾向を識別するのを支援し得る。更に、その集約は、データの時間依存性も追跡し得る。
動作目標は所定期間の後に更新され得る。1つの方法では、モニタ・データは、最新の動作目標を作成するために、前の動作目標が設定された時から或る期間が経過した後、再び収集され、分析され得る。従って、これは、モニタ・データのより長いエイジの影響を考慮して動作目標を改善する可能性がある。別の方法では、動作の目標は、メモリ装置の故障事象、目標が設定されたので利用可能になった追加情報またはパラメータ等のような他の要素に少なくとも部分的に基づいて更新され得る。
1つの実施例では、モニタ・データの方法は、ストレージ・システムにおけるフラッシュ装置のセットにおいてエラー率面の測定を行うために利用され得る。更に、エラー率対サイクルの数、およびエラー率対データ・エイジの測定が所与のフラッシュ装置に提供され得る。
図8は、1つの実施例に従って、代表的なストレージ・システム800を表わす。図示されるように、ストレージ・システム800は、ストレージ・コントローラ802および複数のフラッシュ装置804を含み得る。システム800の動作はモニタ・データの情報に応じて調節され得る。コントローラ802は、そのようなストレージ・システムからのフィールド・データを集める遠隔のデータ・リポジトリ806とコミュニケーションをとり得る。
コントローラ802は、このデータに基づいてまたは工場プリセットとして、ローカルのフラッシュ装置804のセットに対する初期サイクルの数目標を決定し得る。これらの値はフラッシュ装置804に送られ、フラッシュ装置は、所定のサイクルの数にそれを置くためにそれらのモニタ・データを循環させるであろう。しかる後、ストレージ・コントローラ802は、様々な時間にモニタ・データのエラー特性を収集し得る。
1つの実施例では、ストレージ・コントローラ802は、リアルタイム・クロックを含み得るし、或いはリアルタイム・クロックにアクセスし得る。このクロックは、モニタ・データの書き込み時間を(モニタ・データ内に、または別の保留領域に)記録するために、およびモニタ・データのエイジを決定するために使用され得る。
モニタ・データによって報告されたエラー特性は、S.M.A.R.T.を介するというようなインターフェースを介してフラッシュ装置に集められ得る。ストレージ・システム800は、統計を改善するためにフラッシュ・メモリ804からの収集されたデータを集約し、異常値を識別し得る。
例えば、ストレージ・システム800は16個のフラッシュ・ユニット(例えば、SSD)を含み得るし、その各々は16個のフラッシュ装置を含み得る。これは256個のフラッシュ装置を提供し、従って、(ポアソン統計を仮定すると)16倍もサンプルの質を改善する。各フラッシュ装置が各データ・セット内に3個のブロックを持つ場合、システム・データ・セットのサイズは、各セットにつき768個のブロック・サンプルになるであろう。従って、良好の統計を得ることおよび異常値検出を行なうことが可能である。
モニタ・データは、各モニタ・データ・セットに関するエラー構成を報告し得る。各セットは異なるサイクルの数を有することがある。従って、ストレージ・コントローラ802は、人口に関するエラー率曲線を推定するためにそれらを使用し得る。エラー率曲線は耐久性および持続性の限界基準を選択するためにも使用され得る。
システム800においてデータを使用する方法の一例として、各装置においてモニタ・データに関するエラー・カウント測定のセットを生成するために、モンテカルロ・シミュレーションが行なわれ得る。この場合、モニタ・データは、少なくとも、各モニタ・データ・ブロックに対する平均的なエラー・カウントを報告するものと仮定する。各サイクルの数に対するエラー・カウント値が中間および標準偏差を計算するためにマージされる。
ガウス拡散(Gaussian spread)を仮定すると、外部のECCが修正し得るエスケープ限界目標が計算され得る。更に、装置対装置の相関性が外部のECCを圧倒しないようにするに十分でなければならないエスケープの目標確率は1x10−6である。これは、(ガウスの統計を仮定すれば)この例に関して4.8の標準偏差であるということになる。下記の表4は、この例に関するモンテカルロ・シミュレーションの結果を示す。
Figure 2012523599
この場合、モニタ・データは5つの別個のサイクルの数でサンプリングされる。「中間」行は、セクタ当たり中間の数のエラーをリストし、「シグマ」行は、対応する標準偏差をリストする。「シグマ・クリップ曲線」行は、各サイクルの数時の4.8の標準偏差値である。最後の行は、4.8の標準偏差を超えるエラー・カウントを有する装置の数である。
この例では、クリップを超過する単一の装置だけが存在し、従って、これが特異値であると仮定する。更に、1つのセクタ当たり8つのエラーというエラー限界が選択されるものと仮定する。これは、セクタ・レベルのエラー訂正能力によって決定されるであろう。
そのような値を仮定すると、シグマ・クリップ曲線を挿入することによって非特異値に対するサイクルの数限界が推測され得る。この例に関して、その限界値は85kの書き込みサイクルである。同様に、特異値の限界は、この例では61kサイクルであると計算され得る。更に保守的な方法は、特異値によっても利用され得る。例えば、単一の挿入よりも低いサイクルの数が選択され得る。同様に、曲線適合法のような他の推測技法も使用され得る。
図9は、この例による結果のグラフ900を示す。グラフ900は、特異値が分布の端を十分に越えていることを示し、従って、正規のクリップ限界の適用は恐らくエラー・リスクを生じるであろう。一旦サイクルの数限界が計算されてしまうと、それらは、耐久性の限界に対して責任を負うフラッシュ装置またはコントローラにフィード・バックされ得る。これは様々な時間に繰り返され、従って、種々のデータ・エイジを反映し得る。そのため、ストレージ・システムに対する耐久性のおよび持続性の目標セットは、両方とも生成され得る。
この方法は、それが人口統計に有益であるので、各装置がそれ自身の限界を設定することを可能にすることを超えた改善であり、特異値をサンプリングの雑音から正確に区別することができる。各モニタ・データのセットは、各々が多くのデータ・セクタを含む複数の消去ブロックを含み得る。例えば、典型的なNAND装置は、528kBの消去ブロックを持ち得るし、各々が528バイトを有する1024個のセクタを含む。各モニタ・セットが3つのデータ・ブロックを使用したと仮定すると、256個の装置のセット全体に関して1つのセット当たり3.3x10ビットが存在する。従って、信頼性は強化され、行き過ぎが回避されるので、コストは減少する。
本発明が、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェア要素およびソフトウェア要素の両方を含んだ実施例の形式を取り得るということを留意されたい。例えば、1つの実施例では、システムは、複数のメモリ・ブロックを有するフラッシュ・メモリ装置を含み得るし、それらのブロックの少なくとも1つはそこにモニタ・データを書き込まれ、少なくとも1つのブロックは、モニタ・データの書き込みの前に複数回も書き込まれている。システムは、更に、それらのブロックをアドレスするための回路、およびモニタ・データのコピーを格納する二次メモリも含み得る。更に、システムは、ストレージ・コントローラおよび複数のフラッシュ・メモリ装置を含み得る。
当業者には明らかなように、本発明は、システム、方法、またはコンピュータ・プログラムとして具現化され得る。従って、本発明は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例(ファームウェア、駐在ソフトウェア、マイクロコード等を含む)または、本明細書では一般に「回路」、「モジュール」、もしくは「システム」と呼ばれ得るソフトウェアおよびハードウェアの側面を結合した実施例の形体を取り得る。更に、本発明は、有形の表現媒体において具体化され、コンピュータ使用可能プログラム・コードとして体現されたコンピュータ・プログラムの形体を取り得る。
1つまたは複数のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組み合わせが利用され得る。例えば、コンピュータ使用可能媒体またはコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線、もしくは半導体システム、装置、デバイス、または伝播媒体であってもよいが、それらに限定されない。コンピュータ可読媒体の更なる特殊な例(非限定的なリスト)は、以下のもの、即ち、1つまたは複数の配線を有する電気的接続体、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光学的記憶装置、インターネットもしくはイントラネットをサポートするような伝送媒体、或いは磁気記憶装置を含むであろう。プログラムは、例えば、用紙または他の媒体の光学的スキャンによって電子的に捕捉され、しかる後、コンパイルされ、解釈され、或いは必要に応じて適切な方法で処理され、しかる後、コンピュータ・メモリに格納され得るので、コンピュータ使用可能またはコンピュータ可読媒体は、そのプログラムが印刷されている用紙または別の適切な媒体であってもよいということに留意されたい。本明細書に関して、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによる使用、或いはそのシステムに関連した使用のためにプログラムを含み、格納し、通信し、伝播し、または搬送することができる任意の媒体であってもよい。コンピュータ使用可能媒体は、搬送波のベースバンドでまたは搬送波の一部として具体化されたコンピュータ使用可能プログラム・コードを伴う伝播データ信号を含み得る。コンピュータ使用可能プログラム・コードは、無線接続、有線接続、光通信ケーブル、RF等を含むが、これらに限定されない任意の適切な媒体を使用して伝送され得る。
本発明のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来のプロシージャ型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書かれてもよい。プログラム・コードは、ユーザのコンピュータにおいて全体的に、ユーザのコンピュータにおいて部分的に、独立型ソフトウェア・パッケージのようにユーザのコンピュータにおいて部分的におよび遠隔のコンピュータにおいて部分的に、または遠隔のコンピュータもしくはサーバにおいて全体的に実行され得る。下記の説明では、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)あるいは広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るし、または、その接続は、(例えば、インターネット・サービス・プロバイダを使ってインターネットを介して)外部コンピュータに行われ得る。
本発明は、本明細書では、本発明の実施例に従って、方法、装置(システム)およびコンピュータ・プログラムのフローチャートおよび/またはブロック図に関して説明されている。フローチャートおよび/またはブロック図の各ブロック、並びに、フローチャートおよび/またはブロック図におけるブロックの組み合わせがコンピュータ・プログラム命令によって具現化され得るということは当然である。これらのコンピュータ・プログラム命令は、マシンを製造するために汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供され得るので、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて指定された機能/行為を具現化するための手段を作成する。
これらのコンピュータ・プログラム命令は、特定の方法で機能するようにコンピュータまたは他のプログラム可能データ処理装置に指示し得るコンピュータ可読媒体に格納され得るので、コンピュータ可読媒体に格納された命令は、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて指定された機能/行為を具現化する命令手段を含む製品を作り出す。
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置上にもロードされ、コンピュータまたは他のプログラム可能装置上で実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて指定された機能/行為を具現化するためのプロセスを提供するようコンピュータ搭載のプロセスを生じさせるために、一連の動作ステップをコンピュータまたは他のプログラム可能データ処理装置において遂行させる。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施例により、システム、方法およびコンピュータ・プログラムの可能な実施態様のアーキテクチャ、機能、およびオペレーションを示す。この点について、フローチャートまたはブロック図における各ブロックは、指定された論理的機能を具現化するための1つまたは複数の実行可能な命令を含むモジュール、セグメント、またはコード部分を表わし得る。いくつかの代替実施態様では、ブロックに記載された機能が図面に示された順序から外れて生じ得るということにも留意されたい。例えば、連続して示された2つのブロックが、実際には、同時に実行され得るし、或いは、それらのブロックは、時には、関連する機能次第で逆の順序で実行され得る。更に、ブロック図および/またはフローチャートの各ブロック、並びにブロック図および/またはフローチャートにおけるブロックの組み合わせが、指定された機能または行為を遂行する特殊目的のハードウェア・ベースのシステムによって、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって具現化され得るということにも留意されたい。
プログラム・コードを格納および/または実行するに適したデータ処理システムは、システム・バスを介してメモリ素子に直接的にまたは間接的に結合された少なくとも1つのプロセッサを含むであろう。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、コードが実行中に大容量記憶装置から検索されなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的記憶装置を提供するキャッシュ・メモリとを含み得る。
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング装置等を含むがこれらに限定されない)は、システムに直接にまたは介在するI/Oコントローラを介して結合され得る。
ネットワーク・アダプタも、データ処理システムが、介在の専用または公衆ネットワークを介して他のデータ処理システムまたは遠隔のプリンタもしくは記憶装置に連結されることを可能にするために、そのシステムに結合され得る。モデム、ケーブル・モデム、およびイーサネット・カードは、数少ない現在利用可能なタイプのネットワーク・アダプタである。
図10は、1つの実施例に従って、ネットワーク・アーキテクチャ1000を示す。オプションとして、図1乃至図9の機能およびアーキテクチャがネットワーク・アーキテクチャ1000に関連して実装され得る。しかし、図1乃至図9の機能およびアーキテクチャは任意の望ましい環境において実施され得る。前述の定義が当該説明にも適用し得ることに留意されたい。
図10に示されるように、第1の遠隔ネットワーク(ネットワーク1)1004および第2の遠隔ネットワーク(ネットワーク2)1006を含む複数の遠隔ネットワーク1002が設けられる。遠隔ネットワーク1002と近接ネットワーク(ネットワーク3)1008の間にゲートウェイ1007が連結され得る。本ネットワーク・アーキテクチャー1000に関連して、ネットワーク1004および1006は、それぞれ、LAN、インターネットのようなWAN、PSTN、構内電話網等を含むがそれらに限定されない任意の形式を取り得る。
使用時には、ゲートウェイ1007は、遠隔ネットワーク1002から近接ネットワーク1008への進入点として働く。そのように、ゲートウェイ1007は、そのゲートウェイ1007に到着する所与のデータ・パケットを方向付けることができるルータとして、および所与のパケットに対してゲートウェイ1007の実際のパス入力およびパス出力を供給するスイッチとして機能し得る。
更に、近接ネットワーク1008に結合された少なくとも1つのデータ・サーバ1014が含まれ、それは遠隔ネットワーク1002からゲートウェイ1007経由してアクセス可能である。データ・サーバ1014が任意のタイプのコンピューティング装置/グループウェアを含み得るということに留意されたい。各データ・サーバ1014には複数のユーザ装置1016が結合される。そのようなユーザ装置1016は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、または他のタイプのロジックを含み得る。ユーザ装置1017も、1つの実施例では、それらのネットワークのいずれにも直接結合され得るということに留意されたい。
1つまたは複数のネットワーク1004、1006、1008に1つのファクシミリ装置1020または一連のファクシミリ装置1020が結合され得る。データベースおよび/または更なるコンポーネントが、ネットワーク1004、1006、1008に結合された任意のタイプのネットワーク素子によって利用され得るし、或いはそれらのネットワーク素子に統合され得るということに留意されたい。この説明に関連して、ネットワーク素子は、ネットワークの任意のコンポーネントを指してもよい。
図11は、1つの実施例に従って、図10のユーザ装置1016に関連した代表的なハードウェア環境を示す。その図は、マイクロプロセッサのような中央処理装置1110、およびシステム・バス1112を介して相互接続された多くの他のユニットを有するワークステーションの代表的なハードウェア構成を示す。
図11に示されたワークステーションは、ランダム・アクセス・メモリ(RAM)1114と、読み取り専用メモリ(ROM)1116と、ディスク記憶ユニット1120のような周辺装置をバス1112に接続するためのI/Oアダプタ1118と、キーボード1124、マウス1126、スピーカ1128、マイクロホン1132、および/または、タッチ・スクリーンおよびディジタル・カメラ(図示されてない)のような他のユーザ・インターフェース装置をバス1112に接続するためのユーザ・インターフェース・アダプタ1122と、ワークステーションを通信ネットワーク1135(例えば、データ処理ネットワーク)に接続するための通信アダプタ1134と、バス1112をディスプレイ装置1138に接続するためのディスプレイ・アダプタ1136とを含む。
ワークステーションは、Microsoft Windows(商標)オペレーティング・システム(OS)、MACOS、またはUNIXオペレーティング・システムのようなオペレーティング・システムをその上に駐在させ得る。好適な実施例は、上記のオペレーティング・システム以外のオペレーティング・システムをプラットフォーム上に実装し得るということは明らかであろう。好適な実施例は、オブジェクト指向プログラミング方法と共に、JAVA、XML、C、および/またはC++言語、或いは、他のプログラミング言語を使用して書かれてもよい。複雑なアプリケーションを開発するために益々使用されるようになったオブジェクト指向プログラミング(OOP)も使用可能である。
様々な実施例を説明したが、それらが、限定としてではなく、単なる例として示されたことは当然である。従って、好適な実施例の幅および範囲は、上記の実施例のいずれによっても限定されるべきではなく、「特許請求の範囲」の記載およびそれらの均等物のみに従って定義されるべきである。

Claims (18)

  1. 有限の耐久性および/または持続性を有する複数のメモリ装置からモニタ・データの情報を収集するステップであって、前記モニタ・データは既知の書き込みサイクルの数を専用のメモリ・セルに格納された既知の内容のデータである、前記収集するステップと、
    前記モニタ・データの情報を分析するステップと、
    前記分析するステップに基づいて、前記メモリ装置の少なくとも1つに関してアクションを取るステップと、
    を含む方法。
  2. 前記モニタ・データを生成するステップを更に含む、請求項1に記載の方法。
  3. 前記モニタ・データの情報は、前記モニタ・データのデータ・エイジおよび前記書き込みサイクルの数の少なくとも一方に関するエラー率情報を含む、請求項1に記載の方法。
  4. 前記収集するステップおよび前記分析するステップを少なくとも2回行うステップと、
    それに基づいて統計的傾向を生成するステップと、
    を更に含む、請求項1に記載の方法。
  5. 前記収集するステップおよび前記分析するステップを少なくとも2回行うステップと、
    前記モニタ・データの時間依存度を追跡するステップと、
    を更に含む、請求項1に記載の方法。
  6. 前記アクションを取るステップは前記メモリ装置の少なくとも1つに関する動作目標を設定するステップを含む、請求項1に記載の方法。
  7. 前記動作目標はデータ書き込みサイクルの数に関する限界である、請求項6に記載の方法。
  8. 前記動作目標はデータ・エイジに関する限界である、請求項6に記載の方法。
  9. 前記モニタ・データは損耗の均等化の影響を受けない、請求項1に記載の方法。
  10. 所定の期間が経過した後、前記メモリ装置の少なくとも1つに関する動作目標を更新するステップを更に含む、請求項6に記載の方法。
  11. 前記メモリ装置はNAND装置である、請求項1に記載の方法。
  12. 前記モニタ・データは前記メモリ装置の各々に関するメモリ容量の約1%よりも少ない、請求項1に記載の方法。
  13. 前記メモリ装置の各々におけるモニタ・データは複数のブロック・グループに書き込まれ、各グループに対して行われる書き込みサイクルの数は異なる、請求項1に記載の方法。
  14. コンピュータ使用可能媒体に書き込まれるコンピュータ・プログラムであって、コンピュータによって実行されるときに前記コンピュータに請求項1乃至請求項13に記載のステップを遂行させるコンピュータ使用可能プログラム・コードを含む、コンピュータ・プログラム。
  15. 有限の耐久性および/または持続性を有する複数のメモリ装置を含み、
    前記メモリ装置の各々は、
    複数のメモリ・ブロックであって、前記メモリ・ブロックの少なくとも1つがモニタ・データを書き込まれており、少なくとも1つのメモリ・ブロックが前記モニタ・データを書き込む前に複数回書き込まれている、前記複数のメモリ・ブロックと、
    前記メモリ・ブロックをアドレスするための回路と、
    前記メモリ装置とコミュニケーション状態にあるプロセッサと、
    前記プロセッサとコミュニケーション状態にあるクロックと、
    を有する、システム。
  16. 前記モニタ・データのコピーを格納する第二メモリを更に含む、請求項15に記載のシステム。
  17. 請求項14に記載されたコンピュータ使用可能媒体を更に含む、請求項15に記載のシステム。
  18. 前記メモリ装置はNAND装置である、請求項15乃至請求項17のいずれかに記載のシステム。
JP2012503953A 2009-04-08 2010-03-25 有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法およびシステム Expired - Fee Related JP5596123B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/420,628 2009-04-08
US12/420,628 US8316173B2 (en) 2009-04-08 2009-04-08 System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
PCT/EP2010/053943 WO2010115726A2 (en) 2009-04-08 2010-03-25 Analyzing monitor data information from memory devices having finite endurance and/or retention

Publications (3)

Publication Number Publication Date
JP2012523599A true JP2012523599A (ja) 2012-10-04
JP2012523599A5 JP2012523599A5 (ja) 2014-05-01
JP5596123B2 JP5596123B2 (ja) 2014-09-24

Family

ID=42359564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012503953A Expired - Fee Related JP5596123B2 (ja) 2009-04-08 2010-03-25 有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法およびシステム

Country Status (5)

Country Link
US (2) US8316173B2 (ja)
EP (1) EP2417603B1 (ja)
JP (1) JP5596123B2 (ja)
CN (1) CN102301427A (ja)
WO (1) WO2010115726A2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316173B2 (en) 2009-04-08 2012-11-20 International Business Machines Corporation System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
US8572443B2 (en) * 2009-04-08 2013-10-29 International Business Machines Corporation System, method, and computer program product for determining a retention behavior for at least one block of a memory device having finite endurance and/or retention
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US9135160B1 (en) 2011-03-28 2015-09-15 Rambus Inc. Devices, systems, and methods for wear leveling memory
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
CN102163165B (zh) * 2011-05-26 2012-11-14 忆正存储技术(武汉)有限公司 一种闪存错误预估模块及其预估方法
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US10359949B2 (en) * 2011-10-31 2019-07-23 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
US8832506B2 (en) * 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
TWI455140B (zh) * 2012-02-21 2014-10-01 Fluiditech Ip Ltd Flash memory usage period assessment method
US20130262942A1 (en) * 2012-03-27 2013-10-03 Yung-Chiang Chu Flash memory lifetime evaluation method
US8996768B2 (en) 2012-05-31 2015-03-31 Sandisk Technologies Inc. Method and storage device for assessing execution of trim commands
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US20130346812A1 (en) * 2012-06-22 2013-12-26 Micron Technology, Inc. Wear leveling memory using error rate
US20150178193A1 (en) * 2012-07-11 2015-06-25 Industry-University Cooperation Foundation, Hanyang University Apparatus and method for managing flash memory by means of writing data pattern recognition
US8856484B2 (en) * 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US10061638B2 (en) * 2016-03-29 2018-08-28 International Business Machines Corporation Isolating faulty components in a clustered storage system with random redistribution of errors in data
CN107680632B (zh) * 2016-08-01 2020-10-16 大唐移动通信设备有限公司 一种固态硬盘的寿命测试方法及装置
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
CN108648778B (zh) * 2018-05-21 2020-10-09 深圳忆联信息系统有限公司 一种固态硬盘读系统及其方法
CN108845765B (zh) * 2018-05-31 2021-06-29 郑州云海信息技术有限公司 一种nand数据读取方法、系统、设备及存储介质
US10585625B2 (en) * 2018-07-12 2020-03-10 Micron Technology, Inc. Determination of data integrity based on sentinel cells
US11354058B2 (en) * 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10564864B1 (en) * 2018-10-04 2020-02-18 Dell Products L.P. Method for estimating data retention time in a solid state drive
US10963185B2 (en) * 2018-11-20 2021-03-30 Micron Technology, Inc. Memory sub-system for performing wear-leveling adjustments based on memory component endurance estimations
US11106370B2 (en) * 2019-07-02 2021-08-31 Micron Technology, Inc. Changing of memory components to be used for a stripe based on an endurance condition
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03110650A (ja) * 1989-09-25 1991-05-10 Casio Comput Co Ltd Eepromチェック方式
JPH04328395A (ja) * 1991-04-26 1992-11-17 Fuji Electric Co Ltd E2 romの書き込み回数オーバのチエック方法
JP2001147862A (ja) * 1999-11-22 2001-05-29 Alps Electric Co Ltd フラッシュメモリ書込方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829739B1 (en) * 2000-08-10 2004-12-07 Siemens Information And Communication Networks, Inc. Apparatus and method for data buffering
US20040268190A1 (en) * 2003-05-19 2004-12-30 International Business Machines Corporation Adjusting parameters of a serial link
US7372731B2 (en) * 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
KR100704618B1 (ko) * 2004-01-19 2007-04-10 삼성전자주식회사 플래시 메모리의 데이터 복구 장치 및 방법
US20060026467A1 (en) * 2004-07-30 2006-02-02 Smadar Nehab Method and apparatus for automatically discovering of application errors as a predictive metric for the functional health of enterprise applications
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7523013B2 (en) * 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
US7778077B2 (en) * 2006-05-15 2010-08-17 Sandisk Corporation Non-volatile memory system with end of life calculation
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US7962792B2 (en) * 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
US8316173B2 (en) 2009-04-08 2012-11-20 International Business Machines Corporation System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
US8380946B2 (en) * 2009-04-08 2013-02-19 International Business Machines Corporation System, method, and computer program product for estimating when a reliable life of a memory device having finite endurance and/or retention, or portion thereof, will be expended
US8572443B2 (en) * 2009-04-08 2013-10-29 International Business Machines Corporation System, method, and computer program product for determining a retention behavior for at least one block of a memory device having finite endurance and/or retention

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03110650A (ja) * 1989-09-25 1991-05-10 Casio Comput Co Ltd Eepromチェック方式
JPH04328395A (ja) * 1991-04-26 1992-11-17 Fuji Electric Co Ltd E2 romの書き込み回数オーバのチエック方法
JP2001147862A (ja) * 1999-11-22 2001-05-29 Alps Electric Co Ltd フラッシュメモリ書込方法

Also Published As

Publication number Publication date
EP2417603B1 (en) 2018-04-25
EP2417603A2 (en) 2012-02-15
WO2010115726A2 (en) 2010-10-14
CN102301427A (zh) 2011-12-28
US8554989B2 (en) 2013-10-08
US20130013968A1 (en) 2013-01-10
US8316173B2 (en) 2012-11-20
WO2010115726A3 (en) 2010-12-23
US20100262795A1 (en) 2010-10-14
JP5596123B2 (ja) 2014-09-24

Similar Documents

Publication Publication Date Title
JP5596123B2 (ja) 有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法およびシステム
US8380946B2 (en) System, method, and computer program product for estimating when a reliable life of a memory device having finite endurance and/or retention, or portion thereof, will be expended
US8572443B2 (en) System, method, and computer program product for determining a retention behavior for at least one block of a memory device having finite endurance and/or retention
US10963327B2 (en) Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
Schroeder et al. Flash reliability in production: The expected and the unexpected
US10235233B2 (en) Storage error type determination
US20170131948A1 (en) Visualization of usage impacts on solid state drive life acceleration
US7992061B2 (en) Method for testing reliability of solid-state storage medium
US20170131947A1 (en) Data and collection methods to analyze life acceleration of SSD with real usages
Schroeder et al. Reliability of NAND-based SSDs: What field studies tell us
CN107076797B (zh) 基于所执行的访问命令对半导体存储功耗的测试
CN110459259A (zh) 存储设备写错误纠错能力的测试方法、系统及存储介质
US20120260138A1 (en) Error logging in a storage device
Pletka et al. Management of next-generation NAND flash to achieve enterprise-level endurance and latency targets
CN109801668A (zh) 数据储存装置及应用于其上的操作方法
US20190347013A1 (en) Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation
US20190391752A1 (en) Block health estimation for wear leveling in non-volatile memories
CN112732181A (zh) 一种ssd的数据迁移方法及相关装置
US10921988B2 (en) System and method for discovering parallelism of memory devices
CN113568798B (zh) 服务器故障定位方法、装置、电子设备及存储介质
US11599403B2 (en) Logging mechanism for memory system
Liu et al. VST: A virtual stress testing framework for discovering bugs in SSD flash-translation layers
US11875864B2 (en) Mitigating edge layer effect in partially written blocks
US11728000B1 (en) Systems and methods for detecting counterfeit or defective memory
CN116469441A (zh) 获取存储装置环境温度的方法、电子设备及可读存储装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140225

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140225

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140225

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140724

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140806

R150 Certificate of patent or registration of utility model

Ref document number: 5596123

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees