JP2015506505A - メモリ装置のウェアレベリング - Google Patents
メモリ装置のウェアレベリング Download PDFInfo
- Publication number
- JP2015506505A JP2015506505A JP2014549056A JP2014549056A JP2015506505A JP 2015506505 A JP2015506505 A JP 2015506505A JP 2014549056 A JP2014549056 A JP 2014549056A JP 2014549056 A JP2014549056 A JP 2014549056A JP 2015506505 A JP2015506505 A JP 2015506505A
- Authority
- JP
- Japan
- Prior art keywords
- memory die
- volatile memory
- die
- reliability measurement
- data
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
データ蓄積装置でウェアレベリングを管理する方法は、第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすか否かを判断することを含む。第1の不揮発性メモリダイは複数のメモリダイに含まれる。この方法は、第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすという判断に応じて、第1の不揮発性メモリダイの第1の部分から複数のメモリダイのうちの第2の不揮発性メモリダイへ第1のデータを移動することをも含む。
Description
本発明は、一般的にデータ蓄積に関する。
メモリ装置にデータを蓄積する能力は技術の進歩にともない向上している。例えば、フラッシュメモリ装置は半導体装置で不揮発性データ蓄積を可能にし、この半導体装置は1つ以上のメモリコアを含み、各コアは該当するメモリダイ上に配置され得る。
書き込み、読み出し、消去、およびメモリ素子が関わる他のメモリ操作のため、メモリダイのメモリ素子でウェアが起こり得る。過度のウェアを被ったメモリ素子は信頼できる蓄積素子でなくなる可能性がある。メモリダイで信頼できる蓄積素子の数が減少すると、メモリダイからのデータ読み出しの誤り率は増加する。誤り率がメモリ装置の誤り訂正能力を上回ると、メモリ装置の有用寿命は終わったとみなされる。
ウェアレベリングはメモリダイの寿命を延ばし得る手法であり、メモリダイ内のメモリ素子でウェアを分散するためにメモリダイのメモリ素子間でデータを移動することを通常含む。頻繁にアクセスされるデータをある1つのメモリ素子から別のメモリ素子に移すことにより、読み出し、書き込み、消去、リフレッシュ、および他のメモリ操作をも含むメモリ操作が、2つ以上のメモリ素子に分散される。その結果、メモリダイはウェアレベリングがない場合より長い有用寿命を有し得る。
データはデータ蓄積装置の異なるメモリダイ間で移動され得る。ある1つのメモリダイから別のメモリダイへデータを移動するか否かの決定は、メモリダイの一方または両方に関連付けられた信頼性測定値に基づき得る。データ蓄積装置の中で複数のメモリダイのうちの他の不揮発性メモリダイへデータを移動することにより(ウェアレベリング)、単一メモリダイ内でのデータ移動にウェアレベリングを限定する場合に比べて複数のメモリダイの有用寿命を延ばし得る。
複数のメモリダイのうちの第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値を管理し、かつ信頼性測定値がしきい値を満たすか否かを判断する方法および装置が提示される。しきい値には第1の不揮発性メモリダイの第1の部分の信頼性が関連付けられ得る。信頼性測定値がしきい値を満たすという判断に応じて、第1の部分に蓄積されたデータは複数のメモリダイの第2の不揮発性メモリダイへ移動され得る。第2の不揮発性メモリダイの特定部分に対するデータ移動は、その特定部分に関連付けられた信頼性測定値が第2の不揮発性メモリダイの特定部分に関連付けられたしきい値に満たない値を有することを条件とし得る。
データは不揮発性メモリの一部分(例えば、不揮発性メモリのページまたはブロック)に蓄積され得る。不揮発性メモリの各部分は、通常は多数の書き込み、読み出し、他のメモリ操作、またはこれらの組み合わせのために、ウェアを被り得る。
不揮発性メモリの一部分のウェアは当該部分の信頼性測定値に反映され得る。例えば、信頼性測定値は、当該部分に対する書き込み、読み出し、他のメモリアクセス、またはこれらの組み合わせの数に基づき判断され得る。あるいは、信頼性測定値は当該部分にデータが書き込まれた後の経過時間に基づき得る。信頼性測定値は、当該部分の信頼性について、つまり当該部分に蓄積されたデータ表現が当該部分に書き込まれたデータの正確な表現であるか否かについて、指標を提供し得る。
信頼性測定値は、その値を信頼性基準に関連するしきい値に比較することによって評価され得る。メモリの第1の部分に関連付けられた信頼性測定値がしきい値に達するかしきい値を超過すると、第1の部分は信頼できないとみなされ得る。これに応じて、蓄積されているデータは不揮発性メモリの第2の部分へ移動され得る。ウェアを均一にするために第2の部分へデータを移動することにより(ウェアレベリング)、蓄積されたデータの信頼性は向上し得る。具体的に説明すると、第2の部分へデータを移動することで、蓄積されたデータで誤りが生じる確率は第1の部分にデータを残す場合に比べて減少し得る。
ウェアレベリングはメモリダイの一部分から当該メモリダイの別の部分へのデータ移動に限定され得る。あるいは、ウェアレベリングはメモリダイ間のデータ移動に拡張され得る。ウェアレベリングがダイの一部分から同一ダイの別の部分へデータを移すことに限定される場合は、ダイのいずれか1つが他のダイより早く消耗し得る。1スタックのメモリダイ等、複数のメモリダイを含むメモリ装置では、スタック内の単一のダイを差し替えることが困難であるため、単一のメモリダイに偏ったウェアはメモリ装置の有効寿命を制限し得る。複数のメモリダイにわたるデータ移動にウェアレベリングを応用することにより、メモリダイのいずれか1つにウェアが偏る見込みは低減され、メモリ装置全体の有用寿命は延びる。
図1は、1スタック101のメモリダイと、スタック101のメモリダイ間でデータを移動することによってウェアレベリングを遂行するように構成されたコントローラ180とを備えるデータ蓄積装置100のブロック図である。データ蓄積装置100はまた、第1の周辺ダイ120と、第2の周辺ダイ140と、第3の周辺ダイ150と、第4の周辺ダイ170とを備える。周辺ダイ120、140、150、170の各々はメモリダイスタック101のそれぞれのメモリダイへ結合される。他の実施形態において、データ蓄積装置100は、積み重ねられず、別の幾何学的構成で配置された複数のダイを含み、例えば、隣り合わせに配置されたダイ、またはダイ数がそれぞれ等しいかまたは異なる数個のスタックに配置されたダイを有するマルチダイパッケージを含み得る。本願明細書における図1の説明は、データ蓄積装置100の複数のメモリダイのあらゆる幾何学的構成に当てはまる。
データ蓄積装置100は、例えば、Secure Digital SD(登録商標)カード、microSD(登録商標)カード、miniSD(登録商標)カード(デラウェア州ウィルミントンのSD-3C LLC の商標)、MultiMediaCard(登録商標)(MMC)カード(バージニア州アーリントンのJEDEC Solid State Technology Associationの商標)、またはCompactFlash(登録商標)(CF)カード(カリフォルニア州ミルピタスのサンディスク コーポレイションの商標)といったメモリカードに含まれ得る。あるいは、データ蓄積装置100は、ホスト装置に組み込まれたメモリであってよく、例えば説明的な例としてeMMC(登録商標)(バージニア州アーリントンのJEDEC Solid State Technology Associationの商標)メモリ、またはeSDメモリであってもよい。あるいは、データ蓄積装置100は、携帯電話機、タブレット、可搬型コンピュータ、個人用携帯情報端末を含む計算装置等に利用され得る組み込みメモリ(例えば、組み込みフラッシュダイ)であってもよい。
スタック101は、周辺回路インターフェイス103を含む第1のメモリダイ102と、周辺回路インターフェイス105を含む第2のメモリダイ104と、周辺回路インターフェイス107を含む第3のメモリダイ106と、周辺回路インターフェイス109を含む第4のメモリダイ108とを含む。スタック101のメモリダイのいずれか1つ以上はフラッシュメモリ(例えば、NANDフラッシュメモリ)を含み得る。4つのメモリダイを有するスタック101が示されているが、他の実施形態においてスタック101は2つのメモリダイ、3つのメモリダイ、または5つ以上のメモリダイを有し得る。
第1のメモリダイ102は、周辺回路インターフェイス103を介し、かつ第1の周辺ダイ120のコアインターフェイス127を介し、周辺ダイ120の第1の周辺回路122へ結合され得る。第2のメモリダイ104は、周辺回路インターフェイス105を介し、かつ第2の周辺ダイ140のコアインターフェイス147を介し、第2の周辺ダイ140の第2の周辺回路142へ結合され得る。第3のメモリダイ106は、周辺回路インターフェイス107を介し、かつ第3の周辺ダイ150のコアインターフェイス157を介し、第3の周辺ダイ150の第3の周辺回路152へ結合され得る。第4のメモリダイ108は、周辺回路インターフェイス109を介し、かつ第4の周辺ダイ170のコアインターフェイス177を介し、第4の周辺ダイ170の第4の周辺回路172へ結合され得る。
第1の周辺回路122は、第1の周辺ダイ120のコントローラインターフェイス129を介し、かつコントローラ180の第1の装置インターフェイス131を介し、コントローラ180へ結合され得る。第2の周辺回路142は、第2の周辺ダイ140のコントローラインターフェイス149を介し、かつコントローラ180の第2の装置インターフェイス133を介し、コントローラ180へ結合され得る。第3の周辺回路152は、第3の周辺ダイ150のコントローラインターフェイス159を介し、かつコントローラ180の第3の装置インターフェイス135を介し、コントローラ180へ結合され得る。第4の周辺回路172は、第4の周辺ダイ170のコントローラインターフェイス179を介し、かつコントローラ180の第4の装置インターフェイス137を介し、コントローラ180へ結合され得る。装置インターフェイス131、133、135、137のいずれか1つ以上は直列化/非直列化(SERDES)インターフェイスであってもよい。
第1の周辺回路122は、コアインターフェイス127を介して第1の不揮発性メモリダイ102と通信し、かつコントローラインターフェイス129を介してコントローラ180と通信するように構成され得る。例えば、コントローラインターフェイス129は、1対の線上で差動信号によりコントローラ180との通信を可能にするSERDESインターフェイスであってもよい。第1の周辺回路122は、コントローラによって従来実施されてきた1つ以上の操作(誤り訂正符号化および復号化等)、あるいはフラッシュメモリによって従来実施されてきた1つ以上の操作(データラッチング操作、状態マシン操作等)を遂行するように構成され得る。
第1の周辺回路122は、第1のメモリダイ102で行われるメモリ操作に応じて信頼性測定値表130を更新するように構成された追跡回路124を含む。例えば、追跡回路124は、メモリダイ102へ書き込まれるデータに対応する信頼性測定値表130で書き込み/消去サイクル数を更新するように構成され得る。追跡回路124はまた、信頼性測定値表130内の項目をしきい値126に比較し、かつある特定の項目がしきい値126を満たす場合にコントローラ180に合図するように構成され得る。
同様に、第2の周辺回路142は第2の不揮発性メモリダイ104と通信するように構成され、追跡回路143を含み得る。第2の周辺回路142はしきい値146と信頼性測定値表144とを蓄積し得る。第3の周辺回路152は第3の不揮発性メモリダイ106と通信するように構成され、追跡回路154を含み得る。第3の周辺回路152はしきい値156と信頼性測定値表158とを蓄積し得る。第4の周辺回路172は第4の不揮発性メモリダイ108と通信するように構成され、追跡回路173を含み得る。第4の周辺回路172はしきい値176と信頼性測定値表174とを蓄積し得る。信頼性測定値表130、144、158、174のいずれか1つ以上、および/またはしきい値126、146、156、176のいずれか1つ以上は、オンボードメモリ(例えば、該当する周辺回路内の不揮発性蓄積部)に蓄積され得る。
作動中にコントローラ180はスタック101で行われるデータ操作(例えば、書き込み操作、読み出し操作、および消去操作)を制御し得る。例えば、コントローラ180は書き込みコマンドとデータを周辺ダイ120へ送信し、周辺ダイ120は第1のメモリダイ102にデータを蓄積し得る。データは第1のメモリダイ102のいずれかの部分に蓄積され得る。(「部分」は1ページのメモリ、1ブロックのメモリ、またはメモリダイ上の別のメモリ区分を指し得る。)例えば、データ132は第1のメモリダイ102の第1の部分110に蓄積され得る。第1の部分110に関連付けられた信頼性測定値128を管理する追跡回路124は、表130で信頼性測定値128を更新し得る。
追跡回路124は、第1のメモリダイ102の各部分に対応する信頼性測定値を信頼性測定値表130内で管理し得る。信頼性測定値表130の中で信頼性測定値を管理することにより、第1の周辺回路122はメモリダイ間でデータ移動が行われるべき時を検知し得る。例えば、第1の周辺回路122は、信頼性測定値表130の中にある1つ以上の信頼性測定値がしきい値126を満たすかまたはしきい値126を超過することを検知し得る。
第1の周辺回路122は信頼性測定値128がしきい値126を満たすこと(しきい値126以上であること)を判断し得る。これに応じて、第1の周辺回路122は別のメモリダイへのデータ132の移動に着手し得る。例えば、第1の周辺回路122はコントローラ180内のダイ間ウェアレベリング制御部182へ信号を送信し、第1の部分110に蓄積されたデータ132を移すべきことを伝え得る。
ダイ間ウェアレベリング制御部182はデータ132の目的地を特定するため、追跡回路143、154、173のいずれか1つ以上に問い合わせを行い得る。この問い合わせに応じて、追跡回路143、154、173の各々はダイ間ウェアレベリング制御部182へ応答を送信し、データ移動のために該当するメモリダイの状態を伝える。
ダイ間ウェアレベリング制御部182は第2のメモリダイ104でデータ132の目的地を選択し、データ132を取り出すことを第1の周辺回路122に指図し得る。例えば、ダイ間ウェアレベリング制御部182は、第2の不揮発性メモリダイ104の第2の部分112に関連付けられた第2の信頼性測定値148が第2のメモリダイ104に関連付けられたしきい値146に満たないことが確認されることを条件とし、第2の部分112を移動の目的地として選択し得る。第2の信頼性測定値148がしきい値146に満たないか否かの判断は第2の周辺回路142によって遂行され得る。
コントローラ180のダイ間ウェアレベリング制御部182は、第1のメモリダイ102から第2のメモリダイ104の第2の部分112へのデータ132の移動を誘導し得る。第2の周辺回路142は第2のメモリダイ104にデータ132を蓄積し得る。
別の例において、第2のデータ162は第3のメモリダイ106の第3の部分114から移され、第4のメモリダイ108に蓄積され得る。例えば、第3の部分114に関連付けられた信頼性測定値160がしきい値156を満たすという判断が下され得る。ダイ間ウェアレベリング制御部182は目的地(例えば、第4のメモリダイ108の部分116)を選択し、データ162を取り出すことを第3の周辺回路152に指図し得る。第4の部分116への第2のデータ162の移動は、第4の部分116に関連付けられた信頼性測定値178がしきい値176に満たないと判断されることを条件とし得る。
信頼性測定値表130、144、158、174で管理される信頼性測定値は、スタック101内のメモリダイの対応する部分に対するメモリアクセス操作(例えば、読み出し操作、書き込み操作、または他のメモリ操作)を追跡し得る。代替的にまたは追加的に、信頼性測定値はメモリダイの特定部分にデータが書き込まれた後の経過時間の判断を可能にし得る。例えば、追跡回路124はデータ132が部分110に書き込まれたときのタイムスタンプを記録し、かつこのタイムスタンプをシステムクロックに比較して経過時間を計算し得る。追跡回路124は経過時間がしきい値(例えば、しきい値126)を超過したか否かを判断し得る。
それぞれのしきい値(例えば、しきい値126、146、156、176)は、1つ以上の基準(例えば、該当するメモリダイの周囲条件)に基づき選択され得る。例えば、作動温度はメモリダイの信頼性に影響を与え、スタック101の内側に位置するメモリダイは外側に位置するメモリダイより高温で作動し得る。高い周囲温度は蓄積されたデータを急速に劣化させ得るため、内側に位置するメモリダイ(例えば、第2のメモリダイ104または第3のメモリダイ106)のしきい値は外側に位置するメモリダイ(例えば、第1のメモリダイ102または第4のメモリダイ108)より小さくしてもよい。小さいしきい値はメモリダイの短い有用寿命を反映し、しきい値が小さいほど、少ないメモリ操作の後かまたはデータ書き込み以降の短い経過時間の後に、データは移動され得る。
ダイ間ウェアレベリングを遂行することにより、装置100はそれぞれのダイの中で個別にウェアレベリングを遂行する場合に比べて長い有用寿命を有し得る。データは、ウェアが多いダイからウェアが少ないダイへ移動され得る。その結果、単一のメモリダイで生じる過度のウェアによる装置100の早期故障は軽減され得る。
図2は、周辺回路と、複数のメモリダイのメモリダイ間でデータを移動するように構成されたコントローラとを備えるデータ蓄積装置200のブロック図である。データ蓄積装置200は、メモリダイのスタック201と、コントローラ280と、複数の周辺ダイ220、240、250とを備える。スタック201内のメモリダイの各々は不揮発性メモリダイであってよく、例えばNANDフラッシュメモリであってもよい。他の実施形態において、データ蓄積装置200は、積み重ねられず、別の幾何学的構成で配置された複数のダイを含み、例えば隣り合わせに配置されたダイ、またはダイ数がそれぞれ等しいかまたは異なる数個のスタックに配置されたダイを含み得る。本願明細書における図2の説明はデータ蓄積装置200の複数のメモリダイのあらゆる幾何学的構成に当てはまる。
メモリスタック201は、周辺回路インターフェイス203を含む第1のメモリダイ202と、周辺回路インターフェイス205を含む第2のメモリダイ204と、周辺回路インターフェイス207を含む第3のメモリダイ206とを含み得る。3つのメモリダイを有するスタック201が示されているが、他の実施形態においてスタック201は2つのメモリダイまたは4つ以上のメモリダイを有し得る。
第1のメモリダイ202は、第1の周辺回路インターフェイス203を介し、かつ第1の周辺ダイ220のコアインターフェイス227を介し、第1の周辺ダイ220の第1の周辺回路222へ結合され得る。第2のメモリダイ204は、第2の周辺回路インターフェイス205を介し、かつ第2の周辺ダイ240のコアインターフェイス247を介し、第2の周辺ダイ240の第2の周辺回路242へ結合され得る。第3のメモリダイ206は、第3の周辺回路インターフェイス207を介し、かつ第3の周辺ダイ250のコアインターフェイス257を介し、第3の周辺ダイ250の第3の周辺回路252へ結合され得る。
第1の周辺回路222は、第1の周辺ダイ220のコントローラインターフェイス229を介し、かつコントローラ280の第1の装置インターフェイス231を介し、コントローラ280へ結合され得る。第2の周辺回路242は、第2の周辺ダイ240のコントローラインターフェイス249を介し、かつコントローラ280の第2の装置インターフェイス233を介し、コントローラ280へ結合され得る。第3の周辺回路252は、第3の周辺ダイ250のコントローラインターフェイス259を介し、かつコントローラ280の第3の装置インターフェイス235を介し、コントローラ280へ結合され得る。装置インターフェイス231、233、235のいずれか1つ以上は直列化/非直列化(SERDES)インターフェイスであってもよい。
コントローラ280はプロセッサ282を含み、このプロセッサ282はウェアレベリング回路284を含み得る。コントローラ280はまた、1つ以上のしきい値を蓄積するしきい値蓄積部286を含み得る。コントローラ280はまた、メモリ288を含み、このメモリ288は命令290を含み、この命令290がプロセッサ282によって実行されると、プロセッサ282は操作(例えば、スタック201内の各ダイにつき信頼性測定値を生成し更新すること)を遂行する。コントローラ280はメモリダイ202、204、206にそれぞれ対応する信頼性測定値表230、244、258を含み得る。
プロセッサ212は、メモリダイ(例えば、第1のメモリダイ202)で、信頼性測定値が該当するしきい値を満たす1つ以上の部分を識別するように構成され得る。ウェアレベリング回路284は、該当するしきい値を満たす信頼性測定値を有する識別された各部分からメモリダイスタック201の別のメモリダイの該当する別個の部分に至るデータの移動を開始するように構成され得る。データは、別の部分の信頼性測定値が該当するしきい値に満たない値を有することを条件とし、その別の部分へ書き込まれ得る。
作動中にコントローラ280はメモリダイ202の複数の部分の各々に関連付けられた信頼性測定値を蓄積し得る。例えば、コントローラ280は第1の部分210に関連付けられた信頼性測定値228を信頼性測定値表230に蓄積し得る。コントローラ280は、第1の部分210に関わる事象(例えば、部分210の読み出し、部分210への書き込み、部分210に関わる別のメモリ操作、またはこれらの組み合わせ)が起こるたびに、信頼性測定値228の値を更新することによって信頼性測定値228を管理し得る。あるいは、信頼性測定値は第1の部分に対するデータ書き込み以降の経過時間に基づき更新され得る。
プロセッサ282は、しきい値蓄積部286に蓄積されたしきい値と信頼性測定値228との比較を遂行し得る。プロセッサ282は信頼性測定値228がしきい値を満たすと判断し、これに応じてウェアレベリング回路284は第1の周辺回路222と第2の周辺回路242を介して第1の部分210に蓄積されたデータ232を第2のメモリダイ204へ移動し得る。部分212に対応する信頼性測定値が、しきい値(例えば、部分212に関連付けられたしきい値または第2のメモリダイ204に関連付けられたしきい値)に満たない値を有することを条件とし、データ232は第2のメモリダイ204の部分212へ書き込まれ得る。
コントローラ280は複数の信頼性測定値を管理し、それぞれの信頼性測定値はメモリダイの対応する部分に関連付けられる。それぞれの信頼性測定値には、不揮発性メモリダイの対応する部分に関わるメモリの読み出し、書き込み、他のメモリ操作、またはこれらの組み合わせの数が関連付けられ得る。コントローラ280では、メモリダイスタック201の対応する部分に対してメモリアクセス、書き込み、または他のメモリ操作が行われるたびに信頼性測定値を更新することによって複数の信頼性測定値の各々が管理され得る。代替的にまたは追加的に、それぞれの信頼性測定値にはメモリダイの部分に対する書き込み以降に経過した時間が関連付けられ、それぞれの信頼性測定値は経過時間に基づき更新され得る。
図3は、メモリダイのスタック301と、スタック301のメモリダイ間でデータを移動するように構成されたコントローラ380とを備えるデータ蓄積装置300のブロック図である。
スタック301は、第1のコントローラインターフェイス327を含む第1のメモリダイ302と、第2のコントローラインターフェイス347を含む第2のメモリダイ304と、第3のコントローラインターフェイス357を含む第3のメモリダイ306とを含む。スタック301のメモリダイのいずれか1つ以上はフラッシュメモリ(例えば、NANDフラッシュメモリ)を含み得る。3つのメモリダイを有するスタック301が示されているが、他の実施形態において、スタック301は2つのメモリダイまたは4つ以上のメモリダイを有し得る。他の実施形態において、データ蓄積装置300は、積み重ねられず、別の幾何学的構成で配置された複数のダイを含み、例えば隣り合わせに配置されたダイ、またはダイ数がそれぞれ等しいかまたは異なる数個のスタックに配置されたダイを含む。本願明細書における図3の説明はメモリダイ(例えば、メモリダイ302、304、306)のあらゆる幾何学的構成に当てはまる。
第1のメモリダイ302は、第1のコントローラインターフェイス327を介し、かつコントローラ380の第1のメモリインターフェイス329を介し、コントローラ380へ結合され得る。第2のメモリダイ304は、第2のコントローラインターフェイス347を介し、かつコントローラ380の第2のメモリインターフェイス331を介し、コントローラ380へ結合され得る。第3のメモリダイ306は、第3のコントローラインターフェイス357を介し、かつコントローラ380の第3のメモリインターフェイス333を介し、コントローラ380へ結合され得る。
コントローラ380は、第1のメモリダイ302に対応する第1の信頼性測定値表330と、第2のメモリダイ304に対応する第2の信頼性測定値表344と、第3のメモリダイ306に対応する第3の信頼性測定値表358とを含み得る。コントローラ380はまた、ウェアレベリング回路384およびしきい値蓄積部386を含み得るプロセッサ382と、プロセッサ382によって実行される命令390を含むメモリ388とを含み得る。メモリ388はコントローラ380内の不揮発性メモリであってもよい。あるいは、メモリ388は起動時に命令390を受け取り得る揮発性メモリであってもよい。
コントローラ380は、メモリダイの1つ以上の部分の各々に関連付けられた信頼性測定値(例えば、第1のメモリダイ302の第1の部分310に関連付けられた信頼性測定値328)を管理するように構成され得る。コントローラ380は、部分310の読み出し、部分310への書き込み、第1の部分310に対する他のメモリ操作、またはこれらの組み合わせがあるたびに、値を更新することによって信頼性測定値328を管理し得る。あるいは、信頼性測定値は部分310に対する書き込み時間以降に経過した時間に相当し、経過時間に基づき更新され得る。
作動中にプロセッサ382は信頼性測定値を管理し、更新済みの信頼性測定値が該当するしきい値を満たすか否かの判断が下され得る。ある1つの部分に関連付けられた信頼性測定値がしきい値蓄積部386に蓄積された該当するしきい値を満たすという判断に応じて、コントローラ380はこの部分に蓄積されたデータを別のメモリダイへ移動し得る。例えば、信頼性測定値328が該当するしきい値を満たすと判断されると、コントローラ380のウェアレベリング回路384は、第1の部分310からコントローラ380を介して第2のメモリダイ304の第2の部分312に至るデータ332の移動に着手し得る。第2のメモリダイ304の第2の部分312に至るデータ332の移動は、部分312に関連付けられた信頼性測定値が部分312に関連付けられた該当するしきい値に満たない値を有するという判断を条件とし得る。
図4は、データ蓄積装置(例えば、図1、2または3のデータ蓄積装置)でウェアレベリングを管理する方法の流れ図である。402では、複数のメモリダイ(例えば、1スタックのメモリダイ)に含まれる第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすか否かについて判断が下され得る。例えば、図1の信頼性測定値128がしきい値126を満たすか否かについて判断が下され得る。
404では、第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすという判断に応じて、第1の不揮発性メモリダイの第1の部分から複数のメモリダイの第2の不揮発性メモリダイへ第1のデータが移動され得る。例えば、図1で信頼性測定値128がしきい値126を満たすと、第1のメモリダイ102の部分110から第2のメモリダイ104へデータ132が移動され得る。406でこの方法は終了する。
第1のデータは、第1の不揮発性メモリダイと通信するように構成された第1の周辺回路を介して第1の不揮発性メモリダイの第1の部分から第2の不揮発性メモリダイへ移動され得る。例えば、図1のデータ132は、第1のメモリダイ102の部分110から第1の周辺回路122を介して取り出され得る。第1のデータは、第2の不揮発性メモリダイと通信するように構成された第2の周辺回路を介して第2の不揮発性メモリダイへ移動され得る。例えば、図1のデータ132は、周辺回路142を介して第2のメモリダイ104へ移動され得る。
方法400は、複数のメモリダイの第3の不揮発性メモリダイの特定部分に関連付けられた信頼性測定値が該当するしきい値を満たすことを判断することと、この判断に応じて、その特定部分に蓄積された第2のデータを複数のメモリダイの第4の不揮発性メモリダイへ移動することとをさらに含み得る。例えば、図1で、第3のメモリダイ106の部分114に関連付けられた信頼性測定値160はしきい値156を満たすと判断され得る。これに応じて、部分114に蓄積されたデータ162は第4のメモリダイ108(あるいは例えば、メモリダイスタック101の別のメモリダイ)へ移動され得る。第2のデータは、第3の不揮発性メモリダイと通信するように構成された第3の周辺回路を介して移動され得る。例えば、図1のデータ162は、第3のメモリダイ106と通信するように構成された周辺回路152を介して移動され得る。
第2のデータは、第3の周辺回路(例えば、図1の周辺回路152)から第2のデータを受信し、かつ第2のデータを第4の不揮発性メモリダイへ伝達するように構成された第4の周辺回路を介し、第4の不揮発性メモリダイへ移動され得る。例えば、図1のデータ162は、周辺回路152からコントローラ180を介してデータ162を受信し、かつデータ162を第4のメモリダイ108へ伝達するように構成された周辺回路172を介し、第4のメモリダイ108へ移動され得る。
方法400は、第1の不揮発性メモリダイの複数の部分の各部分に関連付けられた対応する信頼性測定値を管理することを含み得る。方法400はまた、複数のメモリダイの各不揮発性メモリダイの各部分に関連付けられた対応する信頼性測定値を管理することを含み得る。例えば、図1で、周辺回路122、142、152、172の各々は、対応する追跡回路124、143、154、173により、対応するメモリダイ102、104、106、108の各部分に関連付けられた対応する信頼性測定値を管理し得る。データは、第2の不揮発性メモリダイの特定部分に関連付けられた対応する信頼性測定値がしきい値に満たないと判断されることを条件とし、メモリダイ(例えば、第2の不揮発性メモリダイ104)または別のメモリダイ(例えば、メモリダイ106またはメモリダイ108)の特定部分へ移動され得る。
第2の不揮発性メモリダイの特定部分に関連付けられた信頼性測定値がしきい値を満たすという判断に応じて、この方法では、該当するしきい値に満たない関連する信頼性測定値を有する別の特定部分を探すことを含み得る。該当するしきい値に満たない関連する信頼性測定値を有する別の特定部分が見つかったことを受けて、データはこの別の特定部分へ移動され得る。
各不揮発性メモリダイの複数の部分の各部分につき、対応する信頼性測定値がコントローラによって管理され得る。コントローラは対応する周辺回路を介して複数のメモリダイの各々へ結合され、この周辺回路は第1のメモリダイへ結合された第1の周辺回路と第2のメモリダイへ結合された第2の周辺回路とを含む。例えば、図2で、コントローラ280はメモリダイ202、204、206の各部分の信頼性測定値を管理し得る。コントローラ280は、周辺ダイ220、240、250上の対応する周辺回路によってメモリダイ202、204、206の各々へ結合される。
第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値には、第1の不揮発性メモリダイの第1の部分に対するメモリアクセス数が関連付けられ得る。例えば、第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値は、第1の不揮発性メモリダイの第1の部分に対してメモリアクセスがあるたびに更新され得る。
第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値には、第1の不揮発性メモリダイの第1の部分に対する書き込み操作数が関連付けられ得る。第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値は、第1の不揮発性メモリダイの第1の部分に対して書き込み操作があるたびに更新され得る。代替的にまたは追加的に、第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値には、第1の不揮発性メモリダイの第1の部分に対する第1のデータの書き込み時間以降の経過時間が関連付けられ得る。
図5は、複数のメモリダイを有するデータ蓄積装置(例えば、図1、2または3のデータ蓄積装置)でウェアレベリングを管理する方法500を示している。502では部分インデックスjが値0に初期化される。504では、前回の信頼性測定値の更新以降にi番目のダイのj番目の部分に関わるメモリ事象(例えば、j番目の部分に対する書き込みまたはj番目の部分に対する読み出し)が起きたか否かについて、判断が下される。i番目のダイのj番目の部分に関わるメモリ事象が起きた場合は、508でi番目のダイのj番目の部分の信頼性測定値が更新される。例えば、図1で、追跡回路124は、メモリダイ102の対応する部分で起きたメモリ事象に応じて、信頼性測定値表130に蓄積された信頼性測定値を更新し得る。前回の信頼性測定値の更新以降にi番目のダイのj番目の部分に関わるメモリ事象が起きなかった場合は、506でインデックスjが1増加され、方法は504へ戻り、前回の信頼性測定値の更新以降にj+1番目の部分でメモリ事象が起きたか否かを判断する。
510では、i番目のダイのj番目の部分の信頼性測定値がしきい値を満たすか(しきい値以上か)否かについて判断が下される。信頼性測定値が該当するしきい値以上である場合は、512でi番目のダイのj番目の部分に蓄積されたデータが別のダイへ移動される。i番目のダイのj番目の部分の信頼性測定値がしきい値に満たない場合は、506でインデックスjが増加され、方法は504へ戻る。
514では、i番目のダイの全ての部分が検討済みか否かについて判断が下される。i番目のダイの全ての部分(全てのj値)が検討済みの場合は、516で方法が終了する。i番目のダイで検討されていない部分がある場合はインデックスjが増加され、方法は504へ戻る。
図6は、データ蓄積装置(例えば、図1、2、または3のデータ蓄積装置)でウェアレベリングを管理する方法600を示している。602では、メモリダイインデックスが0に初期化される。604では、特定のダイを識別するメモリダイインデックスiが1増加される。606では、ダイ部分インデックスが値0に初期化される。
608では、前回の信頼性測定値の更新以降にi番目のダイのj番目の部分でメモリ事象が起きたか否かについて、すなわちi番目のダイのj番目の部分に対して書き込み、メモリアクセス、別のメモリ操作、またはこれらの組み合わせが行われたか否かについて、判断が下される。前回の信頼性測定値の更新以降にi番目のダイのj番目の部分に対して書き込み、メモリアクセス、または別のメモリ操作が行われた場合は、612でi番目のダイのj番目の部分に関連付けられた信頼性測定値が更新される。
614では、i番目のダイのj番目の部分に関連付けられた信頼性測定値が関連するしきい値を満たすか(しきい値以上か)否かについて判断が下される。しきい値が満たされない場合、方法は610へ戻ってダイ部分インデックスを増加させ、608へ進む。信頼性測定値がしきい値を満たす場合は、616でi番目のメモリダイのj番目の部分に蓄積されたデータが別のダイへ移される。618では、i番目のダイの全ての部分が検討済みか否かについて判断が下される。i番目のダイに検討されていない部分がある場合は、610でダイ部分インデックスjが増加され、方法は608へ戻る。
i番目のダイの全ての部分が検討済みの場合は、620で各ダイが検討済みか(インデックスiがItot に等しいか)否かについて判断が下される。複数のメモリダイで検討されていないダイがある場合、方法は604でメモリダイインデックスiを1増加させ、606へ進みダイ部分インデックスを初期化する。620で全てのダイが検討済みの場合、方法は602へ戻る。
図7は、データ蓄積装置(例えば、図1、2または3のデータ蓄積装置)でウェアレベリングを管理する方法700を示している。702では、部分インデックスjが値0に初期化される。704では、i番目のダイのj番目の部分に対するデータ書き込み以降の経過時間が更新される。706では、経過時間がしきい値を満たすか(しきい値以上か)否かについて判断が下される。経過時間がしきい値以上でなければ714でjが増加され、704でi番目のダイのj番目の部分の経過時間が更新される。経過時間がしきい値を満たす場合、方法は708へ進み、708ではi番目のダイのj番目の部分に蓄積されたデータが別のダイへ移動される。
710では、i番目のダイの全ての部分が検討済みか否かについて判断が下される。i番目のダイで検討されていない部分がある場合、方法は714でjを増加させ、704へ戻る。i番目のダイの全ての部分が検討済みの場合、方法は712で終了する。
図8は、データ蓄積装置(例えば、図1、2、または3のデータ蓄積装置)でウェアレベリングを管理する方法を示している。データ蓄積装置は複数のメモリダイを含み、各メモリダイにはメモリダイインデックスi(i=0〜Itotal )が標示される。802ではメモリダイインデックスiが0に初期化される。804ではメモリダイインデックスiが1増加される。ダイ部分インデックスjは806で0に初期化され、808で増加される。
810では、i番目のダイのj番目の部分に関連付けられた経過時間Telapsed が更新される。例えば、i番目のダイのj番目の部分に対する最初のデータ書き込み以降の経過時間Telapsed が更新される。812では、経過時間Telapsed がしきい値時間を満たすか(しきい値時間以上か)否かについて判断が下される。i番目のダイのj番目の部分の経過時間Telapsed がしきい値を満たさない場合は、808でインデックスjが増加される。
Telapsed がしきい値を満たす場合は、i番目のメモリダイのj番目の部分に蓄積されたデータが移動済みでなければ、814で別のダイへ移動される。816では、i番目のダイの全ての部分が検討済みか否かについて判断が下される。i番目のダイの1つ以上の部分が検討済みでなければ、808でダイ部分インデックスjが増加される。
816でi番目のダイの全ての部分が検討済みなら、818で全てのダイが検討済みか否かについて判断が下される。1つ以上のダイが検討済みでなければ、804でメモリダイインデックスが1増加され、806でダイ部分インデックスjが初期化される。全てのダイが検討済みなら、802でメモリダイインデックスiが初期化され、方法は繰り返し得る。
図に示された種々の構成品はブロック構成品として描かれ、一般的な用語で説明されているが、これらの構成品は、図1、2または3の機器100、200または300がかかる構成品またはこれらの組み合わせに関わる特定の機能を遂行することを可能にするように構成された1つ以上のマイクロプロセッサ、状態マシン、または他の回路を含み得る。例えば、図1のダイ間ウェアレベリング制御部182は、データ蓄積装置でウェアレベリングを管理し、かつメモリスタックの1メモリダイから別のメモリダイへデータを移動するための物理的構成品(例えば、ハードウェアコントローラ、状態マシン、論理回路、または他の構造)を含み得る。
代替的にまたは追加的に、図1のデータ蓄積装置100は実行可能な命令(例えば、図2の命令290)を含み、この実行可能な命令はダイ間ウェアレベリング制御部182の1つ以上の機能を実施するためにコントローラ180によって実行され、この命令はスタック101またはランダムアクセスメモリに蓄積され得る。代替的にまたは追加的に、コントローラ180によって実行される実行可能な命令は、スタック101とは別の独立したメモリ(例えば、読み出し専用メモリ(ROM))に蓄積され得る。
データ蓄積装置100、200または300は、1つ以上の外部装置に選択的に結合されるように構成された可搬型装置に含まれ得る。あるいは、データ蓄積装置100、200または300は、1つ以上のホスト装置(例えば、可搬型通信装置の筐体)の中に取り付けられてもまたは組み込まれてもよい。例えば、データ蓄積装置100はパッケージされた機器の中にあってよく、無線電話機、個人用携帯情報端末(PDA)、ゲーム装置またはコンソール、可搬型ナビゲーション装置、コンピュータ装置、または内部不揮発性メモリを使用する他の装置の中にあってもよい。データ蓄積装置100、200または300は不揮発性メモリを含み、例えばフラッシュメモリ(例えば、NAND、NOR、マルチレベルセル(MLC)、分割ビット線NOR(DINOR)、AND、高容量結合比(HiCR)、非対称コンタクトレストランジスタ(ACT)、または他のフラッシュメモリ)、消去可能でプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、読み出し専用メモリ(ROM)、ワンタイムプログラマブルメモリ(OTP)、三次元(3D)メモリ装置、3Dダイオード式メモリ装置、抵抗メモリ装置、または他種の不揮発性メモリを含み得る。
本願明細書に記載された実施形態の説明は、種々の実施形態を全般的に理解するためのものである。本願明細書の記載から別の実施形態を導き出し利用することもでき、本願明細書の記載範囲から逸脱することなく構造的および論理的な代替および変更を行うことはできる。本願明細書の記載は種々の実施形態の後続の改作または変形例をも対象として含む。本願明細書の記載と図は制限的ではなく、説明的とみなすべきものである。
Claims (36)
- データ蓄積装置でウェアレベリングを管理する方法であって、
複数のメモリダイに含まれる第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすか否かを判断するステップと、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすという判断に応じて、前記第1の不揮発性メモリダイの第1の部分から複数のメモリダイのうちの第2の不揮発性メモリダイへ第1のデータを移動するステップと、
を含む方法。 - 請求項1記載の方法において、
第1のデータは前記第1の不揮発性メモリダイの第1の部分から第1の周辺回路を介して前記第2の不揮発性メモリダイへ移動され、前記第1の周辺回路は前記第1の不揮発性メモリダイと通信するように構成される方法。 - 請求項1記載の方法において、
第1のデータは第2の周辺回路を介して前記第2の不揮発性メモリダイへ移動され、前記第2の周辺回路は前記第2の不揮発性メモリダイと通信するように構成される方法。 - 請求項1記載の方法において、
複数のメモリダイのうちの第3の不揮発性メモリダイの特定部分に関連付けられた信頼性測定値が該当するしきい値を満たすことを判断するステップと、
前記判断するステップに応じて、前記第3の不揮発性メモリダイの特定部分に蓄積された第2のデータを複数のメモリダイのうちの第4の不揮発性メモリダイへ移動するステップと、
をさらに含む方法。 - 請求項4記載の方法において、
第2のデータは第3の周辺回路を介して移動され、前記第3の周辺回路は前記第3の不揮発性メモリダイと通信するように構成される方法。 - 請求項5記載の方法において、
第2のデータは第4の周辺回路を介して前記第4の不揮発性メモリダイへ移動され、前記第4の周辺回路は前記第3の周辺回路から第2のデータを受信し、かつ第2のデータを前記第4の不揮発性メモリダイへ伝達するように構成される方法。 - 請求項1記載の方法において、
前記第1の不揮発性メモリダイの複数の部分の各部分に関連付けられた対応する信頼性測定値を管理するステップをさらに含む方法。 - 請求項1記載の方法において、
複数のメモリダイの各不揮発性メモリダイの対応する複数の部分の各部分に関連付けられた対応する信頼性測定値を管理するステップをさらに含む方法。 - 請求項1記載の方法において、
第1のデータは、前記第2の不揮発性メモリダイの特定部分に関連付けられた対応する信頼性測定値が第2のしきい値に満たないと判断されることを条件とし、前記第2の不揮発性メモリダイの特定部分へ移動される方法。 - 請求項9記載の方法において、
前記第2の不揮発性メモリダイの特定部分に関連付けられた対応する信頼性測定値が第2のしきい値を満たすという判断に応じて、
複数のメモリダイのうちのいずれか1つのメモリダイに位置し、該当するしきい値に満たない関連する信頼性測定値を有する別の特定部分を探すステップと、
該当するしきい値に満たない関連する信頼性測定値を有する別の特定部分が見つかったことを受けて、その別の特定部分へ第1のデータを移動するステップと、
をさらに含む方法。 - 請求項1記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値を、前記第1の周辺回路によって管理する方法。 - 請求項1記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値を、前記第1の不揮発性メモリダイと前記第2の不揮発性メモリダイとを含む複数のメモリダイの各々に結合されたコントローラによって管理し、前記コントローラは第1の周辺ダイ上の第1の周辺回路を介して前記第1の不揮発性メモリダイへ結合され、かつ第2の周辺ダイ上の第2の周辺回路を介して前記第2の不揮発性メモリダイへ結合される方法。 - 請求項1記載の方法において、
各不揮発性メモリダイの複数の部分の各部分につき、対応する信頼性測定値をコントローラによって管理し、前記コントローラは対応する周辺回路を介して複数のメモリダイの各々へ結合され、前記周辺回路は前記第1の不揮発性メモリダイへ結合された第1の周辺回路と前記第2の不揮発性メモリダイへ結合された第2の周辺回路とを備える方法。 - 請求項1記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値には、前記第1の不揮発性メモリダイの第1の部分に対するメモリアクセス数が関連付けられる方法。 - 請求項14記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値は、前記第1の不揮発性メモリダイの第1の部分に対してメモリアクセスがあるたびに更新される方法。 - 請求項1記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値には、前記第1の不揮発性メモリダイの第1の部分に対する書き込み操作数が関連付けられる方法。 - 請求項16記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値は、前記第1の不揮発性メモリダイの第1の部分に対して書き込み操作があるたびに更新される方法。 - 請求項1記載の方法において、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値には、前記第1の不揮発性メモリダイの第1の部分に対する第1のデータの書き込み時間以降の経過時間が関連付けられる方法。 - データ蓄積装置であって、
複数の不揮発性メモリダイと、
複数の不揮発性メモリダイの各々へ結合されたコントローラと、を備え、
前記コントローラは、
複数の不揮発性メモリダイのうちの第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値を管理し、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすか否かを判断し、かつ
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすという判断に応じて、前記第1の不揮発性メモリダイの第1の部分から複数の不揮発性メモリダイのうちの第2の不揮発性メモリダイへデータを移動するように構成されるデータ蓄積装置。 - 請求項19記載のデータ蓄積装置において、
前記コントローラは、前記第2の不揮発性メモリダイの第2の部分に関連付けられた第2の信頼性測定値が第2のしきい値を下回ることが確認されることを条件とし、前記第2の不揮発性メモリダイの第2の部分へデータを移動するように構成されるデータ蓄積装置。 - 請求項19記載のデータ蓄積装置において、
信頼性測定値には、前記第1の不揮発性メモリダイの第1の部分に対するメモリアクセス数が関連付けられるデータ蓄積装置。 - 請求項21記載のデータ蓄積装置において、
信頼性測定値は、前記第1の不揮発性メモリダイの第1の部分に対してメモリアクセスがあるたびに更新されるデータ蓄積装置。 - 請求項19記載のデータ蓄積装置において、
信頼性測定値には、前記第1の不揮発性メモリダイの第1の部分に対する書き込み操作数が関連付けられるデータ蓄積装置。 - 請求項23記載のデータ蓄積装置において、
信頼性測定値は、前記第1の不揮発性メモリダイの第1の部分に対して書き込み操作があるたびに更新されるデータ蓄積装置。 - 請求項19記載のデータ蓄積装置において、
信頼性測定値には、前記第1の不揮発性メモリダイの第1の部分に対するデータの書き込み時間以降の経過時間が関連付けられるデータ蓄積装置。 - 機器において、
複数のメモリダイのうちの第1の不揮発性メモリダイと通信するように構成された第1の周辺回路と、
前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値がしきい値を満たすという判断に応じて、前記第1の不揮発性メモリダイの第1の部分から前記第1の周辺回路を介して複数のメモリダイのうちの第2の不揮発性メモリダイへデータを移動するように構成されたコントローラと、
を備える機器。 - 請求項26記載の機器において、
前記コントローラは第2の周辺回路を介して複数のメモリダイのうちの第2の不揮発性メモリダイへデータを移動するように構成され、前記第2の周辺回路には前記第2の不揮発性メモリダイが連結される機器。 - 請求項26記載の機器において、
前記コントローラは、前記第1の不揮発性メモリダイの第1の部分に関連付けられた信頼性測定値を管理するように構成される機器。 - 請求項26記載の機器において、
前記コントローラは対応する周辺回路を介して複数のメモリダイの各不揮発性メモリダイへ結合される機器。 - 請求項26記載の機器において、
前記コントローラは、複数のメモリダイの各不揮発性メモリダイの対応する複数の部分の各々に関連付けられた対応する信頼性測定値を管理するように構成される機器。 - 請求項26記載の機器において、
前記コントローラは、
前記第1の不揮発性メモリダイの対応する部分に各々関連付けられた複数の信頼性測定値を管理し、
前記第1の不揮発性メモリダイで該当するしきい値を満たす信頼性測定値が関連付けられた1つ以上の部分を識別し、かつ
識別された各部分から複数のメモリダイのうちの1つ以上の他のメモリダイの該当する別個の部分へデータを移動するようにさらに構成される機器。 - 請求項31記載の機器において、
各信頼性測定値には、前記第1の不揮発性メモリダイの該当する部分に対するメモリアクセス数が関連付けられる機器。 - 請求項32記載の機器において、
複数の信頼性測定値は、前記第1の不揮発性メモリダイの特定部分に対してメモリアクセスがあるたびに、前記第1の不揮発性メモリダイの特定部分に対応する信頼性測定値を更新することによって管理される機器。 - 請求項31記載の機器において、
各信頼性測定値には、前記第1の不揮発性メモリダイの該当する部分に対する書き込み操作数が関連付けられる機器。 - 請求項34記載の機器において、
複数の信頼性測定値は、前記第1の不揮発性メモリダイの特定部分に対して書き込み操作があるたびに、前記第1の不揮発性メモリダイの特定部分に対応する信頼性測定値を更新することによって管理される機器。 - 請求項29記載の機器において、
各信頼性測定値には、前記第1の不揮発性メモリダイの該当する部分に対する書き込み時間以降の経過時間が関連付けられる機器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/331,853 US9208070B2 (en) | 2011-12-20 | 2011-12-20 | Wear leveling of multiple memory devices |
US13/331,853 | 2011-12-20 | ||
PCT/US2012/065334 WO2013095819A1 (en) | 2011-12-20 | 2012-11-15 | Wear leveling of memory devices |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015506505A true JP2015506505A (ja) | 2015-03-02 |
Family
ID=47351956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014549056A Pending JP2015506505A (ja) | 2011-12-20 | 2012-11-15 | メモリ装置のウェアレベリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US9208070B2 (ja) |
JP (1) | JP2015506505A (ja) |
KR (1) | KR20140116387A (ja) |
CN (1) | CN104115130A (ja) |
TW (1) | TW201333963A (ja) |
WO (1) | WO2013095819A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9177609B2 (en) | 2011-06-30 | 2015-11-03 | Sandisk Technologies Inc. | Smart bridge for memory core |
US9355929B2 (en) * | 2012-04-25 | 2016-05-31 | Sandisk Technologies Inc. | Data storage based upon temperature considerations |
US8942049B2 (en) * | 2012-09-20 | 2015-01-27 | Texas Instruments Incorporated | Channel hot carrier tolerant tracking circuit for signal development on a memory SRAM |
US9009400B2 (en) | 2012-10-16 | 2015-04-14 | Rambus Inc. | Semiconductor memory systems with on-die data buffering |
US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
EP3905052A1 (en) | 2013-06-29 | 2021-11-03 | Huawei Technologies Co., Ltd. | Method, apparatus, and controller for managing storage array |
US9727493B2 (en) | 2013-08-14 | 2017-08-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
US9817749B2 (en) | 2013-12-04 | 2017-11-14 | Sandisk Technologies Llc | Apparatus and method of offloading processing from a data storage device to a host device |
US9471428B2 (en) | 2014-05-06 | 2016-10-18 | International Business Machines Corporation | Using spare capacity in solid state drives |
KR102251809B1 (ko) | 2014-05-28 | 2021-05-13 | 삼성전자주식회사 | 메모리 시스템, 메모리 인터페이스 장치 및 메모리 시스템에서의 인터페이싱 방법 |
US10365835B2 (en) * | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
US9015439B1 (en) * | 2014-05-30 | 2015-04-21 | SanDisk Technologies, Inc. | Event lock storage device |
US9875039B2 (en) | 2014-09-30 | 2018-01-23 | Sandisk Technologies Llc | Method and apparatus for wear-leveling non-volatile memory |
KR102258126B1 (ko) | 2015-03-19 | 2021-05-28 | 삼성전자주식회사 | 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
US20170344262A1 (en) * | 2016-05-25 | 2017-11-30 | SK Hynix Inc. | Data processing system and method for operating the same |
KR20180096389A (ko) * | 2017-02-21 | 2018-08-29 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 |
JP6765322B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102422032B1 (ko) | 2017-08-16 | 2022-07-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10922221B2 (en) | 2018-03-28 | 2021-02-16 | Micron Technology, Inc. | Memory management |
US10628258B2 (en) * | 2018-07-20 | 2020-04-21 | Micron Technology, Inc. | Die-level error recovery scheme |
US11263124B2 (en) | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
KR102592902B1 (ko) * | 2018-09-05 | 2023-10-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
KR20200033461A (ko) | 2018-09-20 | 2020-03-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11226894B2 (en) * | 2018-12-21 | 2022-01-18 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
US11216219B2 (en) * | 2020-05-11 | 2022-01-04 | Micron Technology, Inc. | Management of peak current of memory dies in a memory sub-system |
US11874736B2 (en) * | 2021-08-11 | 2024-01-16 | Apple Inc. | Calculating soft metrics depending on threshold voltages of memory cells in multiple neighbor word lines |
CN117153831B (zh) * | 2023-09-26 | 2024-05-31 | 湖南融创微电子有限公司 | 一种闪存芯片及控制方法 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US8487653B2 (en) | 2006-08-05 | 2013-07-16 | Tang System | SDOC with FPHA and FPXC: system design on chip with field programmable hybrid array of FPAA, FPGA, FPLA, FPMA, FPRA, FPTA and frequency programmable xtaless clockchip with trimless/trimfree self-adaptive bandgap reference xtaless clockchip |
US5838603A (en) | 1994-10-11 | 1998-11-17 | Matsushita Electric Industrial Co., Ltd. | Semiconductor device and method for fabricating the same, memory core chip and memory peripheral circuit chip |
US5812803A (en) | 1995-09-29 | 1998-09-22 | Intel Corporation | Method and apparatus for controlling data transfers between a bus and a memory device using a multi-chip memory controller |
NO308149B1 (no) | 1998-06-02 | 2000-07-31 | Thin Film Electronics Asa | Skalerbar, integrert databehandlingsinnretning |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
JP4083944B2 (ja) | 1999-12-13 | 2008-04-30 | 東芝マイクロエレクトロニクス株式会社 | 半導体記憶装置 |
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
KR100375232B1 (ko) | 2001-03-20 | 2003-03-08 | 삼성전자주식회사 | 비휘발성 메모리 소자의 제조방법 |
WO2004040586A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
JP4802515B2 (ja) | 2005-03-01 | 2011-10-26 | 株式会社日立製作所 | 半導体装置 |
US7764549B2 (en) | 2005-06-20 | 2010-07-27 | Sandisk 3D Llc | Floating body memory cell system and method of manufacture |
US8291295B2 (en) * | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7631245B2 (en) * | 2005-09-26 | 2009-12-08 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7443011B2 (en) | 2006-02-10 | 2008-10-28 | Marvell International Technology Ltd. | System and method for routing supply voltages or other signals between side-by-side die and a lead frame for system in a package (SIP) devices |
JP4863749B2 (ja) | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
US8990653B2 (en) | 2006-03-31 | 2015-03-24 | Stmicroelectronics, Inc. | Apparatus and method for transmitting and recovering encoded data streams across multiple physical medium attachments |
US20070250857A1 (en) | 2006-04-07 | 2007-10-25 | Cinegest, Inc. | Portable high capacity digital data storage device |
US8000134B2 (en) | 2006-05-15 | 2011-08-16 | Apple Inc. | Off-die charge pump that supplies multiple flash devices |
US7477535B2 (en) | 2006-10-05 | 2009-01-13 | Nokia Corporation | 3D chip arrangement including memory manager |
JP2008117195A (ja) | 2006-11-06 | 2008-05-22 | Hitachi Ltd | 半導体記憶装置 |
US9153337B2 (en) * | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
KR101533120B1 (ko) | 2006-12-14 | 2015-07-01 | 램버스 인코포레이티드 | 멀티 다이 메모리 디바이스 |
US20080153200A1 (en) | 2006-12-22 | 2008-06-26 | Arkalgud Sitaram | Stacked semiconductor components |
WO2008131058A2 (en) | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
CN100458751C (zh) * | 2007-05-10 | 2009-02-04 | 忆正存储技术(深圳)有限公司 | 并行闪存控制器 |
KR100909968B1 (ko) | 2007-06-12 | 2009-07-29 | 삼성전자주식회사 | 구동방식을 개선한 입체 구조의 플래시 메모리 장치 및 그구동방법 |
US8086936B2 (en) | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
WO2009068074A1 (de) | 2007-11-26 | 2009-06-04 | Hyperstone Gmbh | VERFAHREN ZUR GLEICHMÄßIGEN NUTZUNG MEHRERER FLASHSPEICHERCHIPS |
US8028123B2 (en) | 2008-04-15 | 2011-09-27 | SMART Modular Technologies (AZ) , Inc. | Circular wear leveling |
US8412878B2 (en) | 2008-07-14 | 2013-04-02 | Marvell World Trade Ltd. | Combined mobile device and solid state disk with a shared memory architecture |
KR101038167B1 (ko) | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
EP2401680B1 (de) | 2009-02-26 | 2013-11-06 | Hyperstone GmbH | Verfahren zur verwaltung von flashspeichern mit gemischten speichertypen |
US8364923B2 (en) | 2009-03-30 | 2013-01-29 | Oracle America, Inc. | Data storage system manager and method for managing a data storage system |
US8051241B2 (en) * | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
JP2011002945A (ja) * | 2009-06-17 | 2011-01-06 | Renesas Electronics Corp | 半導体装置 |
US20110040924A1 (en) | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code |
GB2484846A (en) | 2009-08-21 | 2012-04-25 | Ibm | Data storage system and method for operating a data storage system |
US8331123B2 (en) | 2009-09-21 | 2012-12-11 | Ocz Technology Group, Inc. | High performance solid-state drives and methods therefor |
KR20110060493A (ko) * | 2009-11-30 | 2011-06-08 | 삼성전자주식회사 | 메모리 장치의 소거 카운트 관리 방법 및 장치 |
US8443263B2 (en) | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US8327225B2 (en) | 2010-01-04 | 2012-12-04 | Micron Technology, Inc. | Error correction in a stacked memory |
US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
US8904226B2 (en) * | 2010-08-26 | 2014-12-02 | Cleversafe, Inc. | Migrating stored copies of a file to stored encoded data slices |
US9240405B2 (en) | 2011-04-19 | 2016-01-19 | Macronix International Co., Ltd. | Memory with off-chip controller |
-
2011
- 2011-12-20 US US13/331,853 patent/US9208070B2/en active Active
-
2012
- 2012-11-15 KR KR1020147017527A patent/KR20140116387A/ko not_active Application Discontinuation
- 2012-11-15 WO PCT/US2012/065334 patent/WO2013095819A1/en active Application Filing
- 2012-11-15 CN CN201280069737.8A patent/CN104115130A/zh active Pending
- 2012-11-15 JP JP2014549056A patent/JP2015506505A/ja active Pending
- 2012-11-21 TW TW101143533A patent/TW201333963A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
KR20140116387A (ko) | 2014-10-02 |
CN104115130A (zh) | 2014-10-22 |
US20130159766A1 (en) | 2013-06-20 |
TW201333963A (zh) | 2013-08-16 |
US9208070B2 (en) | 2015-12-08 |
WO2013095819A1 (en) | 2013-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9208070B2 (en) | Wear leveling of multiple memory devices | |
US9927986B2 (en) | Data storage device with temperature sensor and temperature calibration circuitry and method of operating same | |
US8838883B2 (en) | System and method of adjusting a programming step size for a block of a memory | |
US10535383B2 (en) | Throughput performance for cross temperature handling scenarios | |
US9141534B2 (en) | Tracking read accesses to regions of non-volatile memory | |
US10789161B2 (en) | Data storage device to identify and process a sequential read request and operating method thereof | |
US20150098271A1 (en) | System and method of storing data in a data storage device | |
US9251891B1 (en) | Devices and methods to conditionally send parameter values to non-volatile memory | |
US20170322897A1 (en) | Systems and methods for processing a submission queue | |
US10402117B2 (en) | Memory health monitoring | |
US11409650B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
US8737130B2 (en) | System and method of determining a programming step size for a word line of a memory | |
US20180025777A1 (en) | High-reliability memory read technique | |
US9268681B2 (en) | Heterogeneous data paths for systems having tiered memories | |
TWI644209B (zh) | 記憶體管理 | |
US20150127886A1 (en) | Memory system and method | |
CN105869677B (zh) | 用于内部执行读取-验证操作的存储器装置及其操作方法和存储器系统 | |
CN111752852A (zh) | 数据存储装置及数据存储装置的操作方法 | |
US11210209B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
US20140269086A1 (en) | System and method of accessing memory of a data storage device | |
US11586379B2 (en) | Memory system and method of operating the same | |
CN110795366B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US20230244402A1 (en) | Storage device and operating method of storage device | |
US20200117390A1 (en) | Data storage device and operating method thereof |