JP2017538206A - メモリウェアレベリング - Google Patents

メモリウェアレベリング Download PDF

Info

Publication number
JP2017538206A
JP2017538206A JP2017525331A JP2017525331A JP2017538206A JP 2017538206 A JP2017538206 A JP 2017538206A JP 2017525331 A JP2017525331 A JP 2017525331A JP 2017525331 A JP2017525331 A JP 2017525331A JP 2017538206 A JP2017538206 A JP 2017538206A
Authority
JP
Japan
Prior art keywords
sector
sub
sectors
memory device
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.)
Granted
Application number
JP2017525331A
Other languages
English (en)
Other versions
JP6317039B2 (ja
JP2017538206A5 (ja
Inventor
ジョヴァンニ フォンタナ,マルコ
ジョヴァンニ フォンタナ,マルコ
モンタナーロ,マッシモ
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
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 マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2017538206A publication Critical patent/JP2017538206A/ja
Publication of JP2017538206A5 publication Critical patent/JP2017538206A5/ja
Application granted granted Critical
Publication of JP6317039B2 publication Critical patent/JP6317039B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

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

Abstract

セクタ内並べ替え式ウェアレベリングシステム及び方法は、メモリデバイスにおいて、消耗が大きいサブセクタであって、高ウェアレベルを有し、第1セクタに存在するサブセクタを検出することと、低ウェアレベルを有するメモリデバイスの第2セクタを決定することと、第1セクタを第2セクタとスワップすることと、第1セクタ、第2セクタ、またはその両方の少なくとも1つのサブセクタの位置を並べ替えることとを含む。【選択図】図1

Description

本発明の実施形態は、一般にメモリデバイスの分野に関し、より詳細には、メモリデバイスのウェアレベリングシステム及び方法に関する。
コンピュータシステム及び他の電気的システムは、一般に1つ以上のメモリデバイスを備える。例えば、コンピュータは、NORフラッシュメモリ及びNANDフラッシュメモリを使用することが多い。NORフラッシュとNANDフラッシュにはそれぞれ、他と比較して一定の利点がある。例えば、NORフラッシュメモリは、通常、NANDフラッシュよりも書き込み速度及び消去速度が遅い。更に、NANDフラッシュメモリは、通常、NORフラッシュメモリよりも耐久性が高い。しかしながら、NORフラッシュメモリでは、通常、メモリデバイス内に記憶されたデータへのランダムアクセスが可能であるのに対し、NANDフラッシュメモリでは、一般に、より大きいグループでデータにアクセスし、データを書き込むことが必要である。例えば、NANDフラッシュメモリには、通常、それぞれが複数のページを含む複数のブロックが含まれる。ここで、各ページには多数のバイトデータが含まれる。動作の際、データは、一度に1ブロック消去され、一度に1ページ書き込まれる。
メモリ技術の進歩により、記憶容量の増加を実現しつつ、シリコン領域の大幅な縮小がもたらされてきた。残念ながら、このようにオン・シリコン構造が指数関数的に縮小したことにより、強い干渉が生じて、メモリセルのサイクル耐久性に影響が及んできた。経時的に、データ操作(例えば、読み出し/書き込み操作)が集中すると、メモリセルが劣化する恐れがある。例えば、NANDメモリセルの書き込み/消去サイクル数には制限がある(例えば100,000プログラム/消去サイクル)。
これらのメモリデバイスを長寿命化するために、「ウェアレベリング」を適用して、メモリの様々な物理セクタにわたってデータを分散させることができる。ウェアレベリングは、一般に、メモリアレイの特定部分が早期に破壊されないようにするため、データを各種セクタに書き込んでセルの平等な使用を確保することを含む。ウェアレベリングは、最初にデータをメモリアレイの各種セクタの1つに書き込むことを含んでもよく、あるいは、メモリアレイ内のある物理セクタからデータを移動すること、及びその同じデータをメモリアレイの別の物理セクタに書き込むことを含んでもよい。
いくつかのメモリ技術(例えば、ページフラッシュメモリ)は、各セクタ内部に更なる粒度を備えていることを特徴としており、これはサブセクタと呼ばれる。サブセクタは、メモリのセクタ内部のメモリのセグメントである。サブセクタは、個別にアクセス(例えば、プログラム及び/または消去)されてもよい。従って、サブセクタは、別々のサイクルを有するため、メモリ内の他のサブセクタとはウェアアウトが異なる。残念ながら、従来のウェアレベリング技術では、特に、サイクル数が何十万に達し得る高データサイクル用途(例えば、ページフラッシュ実装)において、サブセクタの消耗に対する効果的な対処がなされてこなかった。
実施形態に従った、セクタ内スワップを実行するサブセクタウェア回路を備えたメモリシステムを表すブロック図である。 実施形態に従った、サブセクタ対応セクタスワッププロセスを示すフロー図である。 実施形態に従った、過剰サイクルが生じ得るサブセクタ対応セクタスワップを示す概略図である。 実施形態に従った、かかるセクタ内スワッププロセスを示すフローチャートである。 実施形態に従った、図4のプロセスを用いたセクタ内スワップを示す概略図である。 実施形態に従った、介在的なセクタ内群スワッププロセスを示すフロー図である。 実施形態に従った、図6のプロセスを用いたセクタ内スワップを示す概略図である。 実施形態に従った、再スクランブル回路を備えたシステムを示す概略図である。 実施形態に従った、マルチプレクサ(MUX)を使用する再スクランブル回路を備えたシステムを示す概略図である。 実施形態に従った、組み合わせ論理を使用する再スクランブル回路を備えたシステムを示す概略図である。
図1は、参照番号10によって略称されるように、メモリシステムを表すブロック図である。メモリシステム10は、コンピュータ、ポケットベル、携帯電話、電子手帳、制御回路等に使用されるものなどの、様々な種類のいずれであってもよい。例えば、メモリデバイスは、NAND型フラッシュメモリまたはNOR型フラッシュメモリであってもよい。システム10は、マスタデバイス12及びスレーブデバイス14を備える。一実施形態において、マスタデバイス12はマイクロコントローラを備えてもよく、スレーブデバイス14はメモリデバイスを備えてもよい。
マスタデバイス12は、様々な伝送線路を介してスレーブデバイス14に接続されている。図示した実施形態において、マスタデバイス12及びスレーブデバイス14は、周辺インタフェース(PI)を介して信号を送受信する。図示した実施形態において、PIはPIバス16を含む。いくつかの実施形態において、PIバス16は、フルデュプレックスモードで動作する同期シリアルデータリンク規格である。PIバス16上のデバイスは、マスタ/スレーブモードで動作してもよい。このモードにより、マスタデバイス12が1つ以上のスレーブデバイス14に対してデータフレームを開始することが可能となる。マスタデバイス12及びスレーブデバイス14は、一般にシフトレジスタを備える。このレジスタにより、これらのデバイスがデータ値を交換及び記憶することが可能となる。動作の際、マスタデバイス12及びスレーブデバイス14は、レジスタに記憶されたデータを用いて、メモリにデータを保存するなどの様々なことを行うことができる。
図示した実施形態において、スレーブデバイス14(例えば、メモリデバイス)は、コントローラ18、キャッシュ20、メモリアレイ22及びECC24ステータスレジスタを備える。コントローラ18は、PIバス16を介してデータを送受信する。PIバス16全体に送信されるデータは、コントローラ18の入力で受信される。コントローラ18は、メモリデバイス14の内部にあるデータ転送入出力線(DT I/O)ならびに制御線26、28及び30を介した信号の送受信も行う。DT I/O線により、キャッシュ20との通信が可能になる。制御線26により、コントローラ18がキャッシュ20と制御信号を送受信することが可能になる。制御線28により、PIコントローラがメモリアレイ22と制御信号を送受信することが可能になる。制御線30により、PIコントローラがエラー訂正符号(ECC)ステータスレジスタ24と制御信号を送受信することが可能になる。
動作の際、コントローラ18は、PIバス16を介して送信されたデータを受信し、メモリ14の他の構成要素の間でデータ(DT I/O)と制御信号のフローを同期させる。例えば、PIコントローラ18は、バス16を介してシリアル化形式のデータ及びコマンドを受信してもよく、データ及びコマンドの入力シリアル化信号を解析してもよい。コントローラ18は、コントローラ18によって送受信される信号を適切なタイミングで提供するシフトレジスタを備えてもよい。更に、コントローラ18は、コマンド、アドレス、データ等を含む入力信号を解釈するために、オンボードで動作するアルゴリズムを備えてもよい。このアルゴリズムは、アドレス方式、エラー訂正、メモリアレイ22内でのデータの移動等を含めて、コントローラ18の適切な出力を決定するルーチンを備えてもよい。以下で更に詳しく述べるが、いくつかの実施形態において、コントローラ18は、記憶データを移動させて、データサイクルによって生じる過度な消耗を防ぐようにしてもよい。同様に、コントローラ18は、バス16を介したコントローラ18からマスタデバイス12へのデータ送信を同期させる回路を備えてもよい。
動作の際、データ(DT I/O)は、メモリアレイ22に、またはそこから、キャッシュ20を通じてバイト単位で転送される。キャッシュ20は、コントローラ18からメモリアレイ22に転送されているデータのデータバッファとして機能する。データは、キャッシュ20に書き込まれてもよく、その後メモリアレイ22に書き込まれてもよい。同様に、データは、メモリアレイ22からキャッシュ20に読み出されてもよく、その後キャッシュ20からマスタデバイス12にコントローラ18及びバス16を介して送信されてもよい。キャッシュ20は、様々なサイズであってよい。例えば、キャッシュ20は、2048バイト、4096バイト、8192バイト、またはその倍数で構成されてもよい。キャッシュ20は、256バイトまたは512バイト等のより小さいサイズであってもよい。ある実施形態において、データレジスタは、キャッシュ20とメモリアレイ22の間のデータ転送経路を提供するためにキャッシュ20またはメモリアレイ22に存在してもよいことに留意すべきである。換言すれば、複数のデータビットを、メモリアレイ22のアドレスに書き込まれる前にデータレジスタにシフトしてもよい。
ECCステータスレジスタ24は、経時的に進行する電荷の減少/増加に起因して生じるビットエラーのみならず、通常動作中に生じる可能性のあるビットエラーを検出し、かつ/または訂正するのに使用される。例えば、ECCステータスレジスタ24は、メモリアレイ22から再びデータを読み出すときにエラーを検出し、訂正するのに使用される回路を備えてもよい。ECCステータスレジスタ24は、コントローラ18で使用されるアルゴリズムを補完してもよい。ECCステータスレジスタ24は、一群のサブレジスタを備えてもよい。これらのサブレジスタは、メモリデバイスデータの付加的なECCを有効にするECCイネーブル/ディセーブルレジスタ、発見された総エラー数を記憶するECCタイプレジスタ、任意の訂正不能なエラーの位置を記憶するECCロケーションレジスタ、メモリアレイ22に対する任意のエラー訂正プロセスの結果に関する情報を記憶するECC NANDメモリリザルトレジスタ、またはキャッシュ20に対する任意のエラー訂正プロセスの結果に関する情報を記憶するECCキャッシュメモリリザルトレジスタを備えてもよい。ECCステータスレジスタ24には、先のECCサブレジスタの全て、または前述したサブレジスタの任意の組み合わせが含まれてもよい。コントローラ18の外部にECCステータスレジスタ24が存在するように示されているものの、ECCステータスレジスタ24は、コントローラ18と一体であってもよい。
メモリアレイ22はメモリセルアレイを備えており、このアレイはセクタ30に分割されている。各セクタは、一定数のサブセクタ32を含む。メモリアレイ22は、任意の数及びサイズのセクタ30及びサブセクタ32を含んでもよい。メモリアレイ22は、セクタ30及び/またはサブセクタ32のレベルでプログラムされ、かつ/または消去されてもよい。
上述したように、あるメモリセルの書き込み/消去サイクル数には制限がある(例えば100,000プログラム/消去サイクル)。メモリデバイス14を長寿命化するために、「ウェアレベリング」を適用して、メモリの様々な物理的位置にわたってデータを分散させることができる。ウェアレベリングは、一般に、メモリアレイ22の特定部分が早期に破壊されないようにするため、データを様々な位置に書き込んでセルの平等な使用を確保することを含む。ウェアレベリングは、最初にデータをメモリアレイ22の様々な位置の1つに書き込むことを含んでもよく、あるいは、メモリアレイ22内のある物理的位置(例えば、アドレス)からデータを移動すること、及びその同じデータをNANDメモリアレイ22の別の物理的位置に書き込むことを含んでもよい。コントローラ18は、データをどこに書き込むべきかを決定するのに使用されるウェアレベリングルーチンを管理してもよい。例えば、コントローラ18のアルゴリズム及び/または回路は、メモリ使用量を監視してもよく、メモリアレイ22内にデータを書き込むために適切なアドレスを決定してもよい。例えば、コントローラ18(または、メモリシステム10の他の構成要素)は、以下で更に詳しく述べるように、メモリアレイ22内の個々のサブセクタ32の消耗量に基づいたウェアレベリングを提供するサブセクタウェア回路34を備えてもよい。ブロックマッピング部(BMU)は、セクタ及び/またはサブセクタを再マッピングする(例えば、再マッピングすべきセクタ及び/またはサブセクタのアドレスを更新する)のみならず、スワップ履歴を追跡する役割を果たしてもよい。
図1の実施形態のコントローラ18の一部としてサブセクタウェア回路34が示されているが、サブセクタウェア回路34は、部分的または全面的に、メモリシステム10の他の構成要素にて実装されてもよい。例えば、いくつかの実施形態において、マスタデバイス12は、回路34を構成するウェアレベルルーチンの一部を備えてもよい。更に、スレーブデバイス14は、回路34を構成するウェアレベルルーチンの別の部分を備えてもよい。
サブセクタウェア回路34は、複数の異なる手法を用いて実装されてもよい。一実施形態においては、階層的なウェアレベル手法を実施してもよい。階層的なウェアレベル手法は、各セクタ30内部でサブセクタ32のウェアレベリングを実施してもよい。換言すれば、サブセクタ32は、セクタ30内のサブセクタ32の相対的なウェアレベルに基づいてセクタ30内部でスワップされてもよい。階層的なウェアレベル手法のトレードオフは、かかる手法のハードウェアオーバーヘッドが増大することである。例えば、この手法を実現するためには、個別アドレスの割り当てを再マッピングするハードウェアが各セクタ内で必要となる場合がある。
別の実施形態においては、サブセクタを、それらが個別セクタであるかのように個別にスワップしてもよい。本質的には、このことは、サブセクタ階層を平坦化するように作用して、スワップ数及びスワッピングプールを増大させる。この手法のトレードオフは、特にセクタレベルにおいて、スワッピングプールが増大することによってスワッピングの管理が非常に複雑になり得ることである。
第3の実施形態においては、サブセクタが閾ウェアレベルに到達したときに、サブセクタ対応セクタスワップと呼ばれる、セクタ30のスワップが行われ得る。図2は、実施形態に従った、サブセクタ対応セクタスワッププロセス50を示すフロー図である。システム10は、いずれのセクタ30が高ウェアレベルを有するかどうかを検出し得る(決定ブロック52)。前述したように、セクタのウェアレベルは、セクタ30内の1つ以上のサブセクタ32に関する情報に基づいてもよい。例えば、消耗は、セクタ30内のサブセクタ32の最高サイクル数、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の合計、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の平均等に基づいて決定されてもよい。一実施形態においては、所定の閾値サイクル数を突破したときに(例えば、サイクル数が100,000サイクルを超えたときに)高ウェアレベルを検出してもよい。
セクタ30が高ウェアレベルを有することが検出されなかった場合、システム10は、高ウェアレベルを有するセクタ30を監視し続ける。セクタ30が高ウェアレベルを有することが一旦検出されたら、スワップを開始してもよい。この場合、高ウェアレベルを有するセクタ30は、宛先セクタ30にスワップするためのターゲットセクタである。従って、この高ウェアレベルセクタ30は「ターゲットセクタ」と呼ばれてもよい。
最良の宛先セクタ30は、消耗が最も少ないセクタ30となり得る。このセクタは、「最小セクタ」と呼ばれてもよい。スワップが一旦開始されると、最小セクタが決定される(ブロック54)。上述したように、ウェアレベルは、セクタ30内のサブセクタ32の最高サイクル数、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の合計、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の平均等に基づいてもよい。従って、最小セクタは、サイクル数に基づいて最低のウェアレベルを有するセクタを特定することによって決定されてもよい。ターゲットセクタ及び最小セクタが一旦決定されると、ターゲットセクタから最小セクタへのスワップが行われる(ブロック56)。
例えば、スワップは、メモリアレイ22内のデータをメモリアレイ22の別の位置に移動させることを含んでもよい。このプロセスは、一般に、メモリアレイ22の先頭アドレスからキャッシュにデータをロードすることを含んでもよい。その後、キャッシュされたデータを、アレイ22内の新たな宛先位置に書き込んでもよい。
この手法の下では、セクタレベルにまでスワップを広げる一方、サブセクタのウェアレベルに基づいてスワップを開始することにより、スワッピングレベルの管理がより容易になる。消耗したサブセクタが位置するセクタ30中の被転送サブセクタ32は、消耗がより少ない別のセクタ30においてそれらのサブセクタの位置を保持する。この手法のトレードオフは、過剰サイクルとなる場合がある。例えば、セクタ30のスワップを、セクタ30内の1つまたはいくつかのサブセクタ32の消耗に対処するように開始したとき、セクタ30のスワップにより、あるサブセクタ32が、新たなセクタ30の位置における消耗が相対的により大きいサブセクタ32に転送される場合がある。従って、これらの転送により、ターゲットサブセクタ32の消耗が増大する場合がある。図3は、過剰サイクルが生じ得る、サブセクタ対応セクタスワップ60を示す概略図である。
上述したように、ターゲットセクタ62から最小セクタ64に転送するためのサブセクタ32は、最小セクタ64においてそれらの相対位置を保持する。従って、ターゲットセクタ62のサブセクタSS4は、転送後の最小セクタ64においてもSS4のままである。図示したように、最小セクタ64のSS4は、最小セクタ64における相対的に最高のウェアレベルのサブセクタとなる場合がある。従って、このスワップでは、サイクルが累積し、最小セクタ64が過剰サイクルになる場合がある。
この問題を抑制するために、一実施形態においては、更なる論理/回路を実装してサブセクタ対応セクタスワップを拡張することにより、サブセクタ32の消耗を低減させるようにしてもよい。特に、図2のサブセクタ対応セクタスワッププロセス50においてセクタ30のスワップを開始するときには常に、更なる論理/回路にサブセクタ32のセクタ内スワップを組み入れてもよい。図4は、かかるセクタ内スワッププロセス70を示すフローチャートである。
図2と同様に、システム10は、いずれのセクタ30が高ウェアレベルを有するかどうかを検出し得る(決定ブロック52)。更に、セクタのウェアレベルは、セクタ30内の1つ以上のサブセクタ32に関する情報に基づいてもよい。このような情報としては、セクタ30内のサブセクタ32の最高サイクル数、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の合計、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の平均等がある。上述したように、所定の閾サイクル数を突破したときに(例えば、サイクル数が100,000サイクルを超えたときに)高ウェアレベルを検出してもよい。
セクタ30が高ウェアレベルを有することが検出されなかった場合、システム10は、高ウェアレベルを有するセクタ30を監視し続ける。セクタ30が高ウェアレベルを有することが一旦検出されたら、ターゲットセクタ62から最小セクタ64へのスワップを開始してもよい。スワップが一旦開始されると、最小セクタ64が決定される(ブロック54)。上述したように、最小セクタ64は、サブセクタのサイクル数に基づいて最低のウェアレベルを有するセクタを特定することによって決定されてもよい。
ターゲットセクタ62及び最小セクタ64が一旦決定されると、組み込み式のサブセクタスワッププロセス72を用いたスワップが行われる(ブロック74)。組み込み式のサブセクタスワッププロセス72は、最小セクタ64の最小サブセクタ(最低のウェアレベルを有するサブセクタ)を決定すること(ブロック76)を含む。その後、ターゲットサブセクタ(例えば、ターゲットセクタ62中の消耗が大きいサブセクタ)を最小サブセクタとスワップする(ブロック78)。
プロセス70の終了時、サブセクタ対応セクタスワップと同様に、最小セクタ64は、ターゲットセクタ62の全てのデータを含む。しかしながら、ターゲットサブセクタと最小サブセクタの位置はスワップされている。図5は、図4のプロセス70に従ったセクタ内スワップ90を示す概略図である。
図5に示すように、サブセクタSS4は、ターゲットセクタ62の最大サブセクタ92である。換言すれば、SS4は、消去すべきサブセクタである。ターゲットセクタ62から最小セクタ64へのスワップに組み込まれたサブセクタスワップを使用して、最大サブセクタ92を最小サブセクタ94とスワップする。従って、最小セクタ64中の相対的に消耗が最も大きいサブセクタ96に最大サブセクタ92を確実に配置しないようにすることにより、過剰サイクルが減少し得る。
理解され得るように、最大サブセクタ92と最小サブセクタ94のセクタ内スワップにより、サイクルの累積が抑制され得る。図5に記述したシナリオにおいて、例えば、各セクタ30は16個のサブセクタ32を含む。従って、最大サブセクタ92と最小サブセクタ94のスワップを実施することにより、サイクル数は、このスワップを利用しないプロセスよりも16回少なくなり得る。更に、スワップがセクタ内スワップであるため、処理時間の増加は無視できるほどになり得る。
サイクル数が大幅に改善され、かつタイミングコストが最低限であるにも関わらず、プロセス70は、増加したシリコン領域を利用してもよい。例えば、サブセクタをスワップするために、ブロックマッピング部(BMU)は、単にセクタアドレスを追跡する代わりに各サブセクタのアドレスを追跡することが必要となる場合がある。
従って、介在的なセクタ内スワッピングソリューションは、増加したシリコン領域の使用量を減少させるように実施されてもよい。図6は、実施形態に従った、介在的なセクタ内群スワッププロセス110を示すフロー図である。
セクタ内スワッププロセス70において各サブセクタのメモリアドレスを追跡するのに必要とされる増加したシリコン領域の使用量の一部を削減するため、サブセクタを束ねて(ブロック112)、複数のサブセクタのより粒度の粗いアドレスが代わりに使用され得るようにしてもよい。図7の考察に関してより詳しく説明されているように、アドレスがより粗い粒度であってもよいため、より少ないビットデータを使用して群状サブセクタのアドレスを定めてもよい。このように、シリコン領域をより少なくして利用してもよい。
システム10は、いずれのセクタ30が高ウェアレベルを有するかどうかを検出し得る(決定ブロック52)。上述したように、セクタのウェアレベルは、セクタ30内の1つ以上のサブセクタ32に関する情報に基づいてもよい。このような情報としては、セクタ30内のサブセクタ32の最高サイクル数、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の合計、所与のセクタ30内の全てのサブセクタ32のサブセクタ32サイクル数の平均等がある。更に、所定の閾サイクル数を突破したときに(例えば、サイクル数が100,000サイクルを超えたときに)高ウェアレベルを検出してもよい。
セクタ30が高ウェアレベルを有することが検出されなかった場合、システム10は、高ウェアレベルを有するセクタ30を監視し続ける。セクタ30が高ウェアレベルを有することが一旦検出されたら、ターゲットセクタ62から最小セクタ64へのスワップを開始してもよい。スワップが一旦開始されると、最小セクタが決定される(ブロック54)。上述したように、最小セクタ64は、サブセクタのサイクル数に基づいて最低のウェアレベルを有するセクタを特定することによって決定されてもよい。
ターゲットセクタ62及び最小セクタ64が一旦決定されると、組み込み式の群状サブセクタスワッププロセス114を用いたスワップが行われる(ブロック116)。組み込み式の群状サブセクタスワッププロセス114は、最小セクタ64の最小群(最低のウェアレベルを有するサブセクタを含む群、及び/または最低のウェアレベルを有する群)を決定すること(ブロック118)を含む。その後、ターゲット群(例えば、ターゲットセクタ62中の消耗が大きいサブセクタを含む群)を、最小群とスワップする(ブロック120)。
プロセス110は、プロセス70よりもサイクル数を少なく削減し得ると共に、標準的なサブセクタ対応セクタスワップ手法と比較してサイクル数を減少させる。更に、スワップには個別のサブセクタではなくサブセクタの群が関与するため、管理の複雑さやシリコン領域の使用量が減少し得る。例えば、ブロックマッピング部は、プロセス70よりも粗い粒度でスワップを維持し、管理し得る。従って、セクタ内スワップを伴わないセクタとサブセクタのスワップ手法で生じる不要なサイクルの一部を削減したまま、処理の複雑さやシリコン領域が減少し得る。
図7は、図6のプロセス110に従ったセクタ内スワップ140を示す概略図である。図7に示すように、サブセクタ32は、アドレス指定可能な群142に束ねられる。例えば、セクタ30が16個のサブセクタ32を含む図示した実施形態において、サブセクタは、4つのサブセクタ32からなる4つ一組に束ねられる。更に、図示したように、各群は、各サブセクタ32を個別にアドレス指定するときに可能となる方法よりも粒度の粗い方法でアドレス指定可能である。例えば、図示した実施形態の各セクタ30が4つ一組の4つの群状サブセクタ32に分割されるため、これらの群は、2ビット144を用いてアドレス指定され得る。これに対して、各サブセクタ32を個別にアドレス指定することは、増加したシリコン領域を利用する場合がある。例えば、16個のサブセクタ32からなる図示した実施形態においては、少なくとも4ビットのデータを使用してサブセクタ32のアドレスを一意に識別することになる。
指示されているように、サブセクタSS4は、ターゲットセクタ62の最大サブセクタ92である。換言すれば、SS4は、消去すべきサブセクタである。更に、アドレス「10」を有する群146は最大群146であるが、これは、この群が最大サブセクタ92を含むためである。ターゲットセクタ62と最小セクタ64のスワップに組み込まれた群状サブセクタスワップを使用して、最大群146を最小群148(群142は最小サブセクタ94を含む)とスワップする。
従って、最小セクタ64中の相対的に最大の消耗を有するサブセクタ96を含む群に最大群146が確実に配置されないようにすることにより、過剰サイクルが減少し得る。
理解され得るように、最大群146と最小群148のセクタ内群状サブセクタスワップにより、サイクルの累積が抑制され得る。図7に記述したシナリオにおいて、例えば、各セクタ30は4つの群142を含む。従って、最大群146と最小群148のスワップを実施することにより、サイクル数は、このスワップを利用しないプロセスよりも4回少なくなり得る。加えて、処理及びシリコン領域の利用は、プロセス70よりも少なくなり得る。更に、上記のように、スワップがセクタ内スワップであるため、処理時間の増加は無視できるほどになり得る。
いくつかの実施形態においては、セクタ内群スワッププロセス110で使用される領域よりも更に大きくシリコン領域の使用量を減少させることが望ましい場合がある。上記を実現し得る1つの方法は、図4及び6の各セクタ内スワップ72及び/または114の代わりにサブセクタ32の包括的なアドレス再マッピングを実施することによるものである。これは、サブセクタ対応セクタスワップ中にセクタ内アドレスを変更する再スクランブル回路によってなされてもよい。図8は、再スクランブル回路162を備えたシステム160を示す概略図である。この再スクランブル回路は、最小セクタ64の最大の消耗を有する最小セクタ64中のサブセクタ32の位置に配置することによって最大サブセクタ92及び/または最大群146を平準化するために、サブセクタ、サブセクタの群等のアドレスを包括的に再マッピングすることができる。
図示したように、ブロックマッピング部(BMU)164は、再スクランブルを行うべきセクタ30の論理セクタアドレス166を受け取る。その後、BMU164は、セクタ30の物理セクタアドレス168及び1つ以上の設定ビット170を出力することによって包括的なアドレス再マッピングを行わせてもよい。この設定ビットにより、論理セクタ内アドレス172の再マッピングが個別に行われる。設定ビットは、再スクランブル回路162にて受け取られる。ここで、再マッピング後の物理セクタ内アドレス174が、設定ビット170及び論理セクタ内アドレス172に基づいて出力される。
一実施形態において、再スクランブル回路162は、図9に示すように、マルチプレクサ(MUX)ソリューションを備えてもよい。かかる実施形態において、設定ビット170は、複数のビットセット190を含んでもよい。この場合、複数のビットセット190はスワップすべきアドレスを表す。例えば、図7の実施形態において、複数のビットセット190はそれぞれ、4つ一組の群のうちの1つを表す。従って、4(スワップ可能なものの数)×2(スワップされるもののアドレスを表すのに必要なビットの数)が、再スクランブル回路162に渡される。そこから、マルチプレクサ(例えば、再スクランブル回路162)は、破線192によって示すように、再マッピングを行うために複数のビットセット190のうちの1つを選択する。マルチプレクサの選択は、再スクランブル回路162への入力として受け取った論理セクタ内アドレス172によって制御される。選択された複数のビットセット190(例えば、ビットセット194)に基づき、再マッピング後の物理セクタ内アドレス174が出力される。
理解され得るように、この再スクランブルソリューションでは、(例えば、プロセス70及び/または110に従って)セクタ内スワップを実行する回路に比べて必要なシリコン領域が少なくなる場合がある。しかしながら、このプロセスには、若干のオーバーヘッドが更に含まれる場合がある。これは、複数のビットセット190の数が非常に多くなり得るためである。従って、いくつかの実施形態においては、設定ビット170をより少なくして用いる別のソリューションを使用することが有益となる場合がある。図10は、システム160の実施形態を示す。ここでは、組み合わせ論理200(例えば、加算論理202及び/または排他的Or(XOR)論理204)を、設定ビット170のうちの1セット210及び論理セクタ内アドレス172と連携して使用することにより、再マッピング後の物理セクタ内アドレス174を出力する。
前述したように、ブロックマッピング部(BMU)164は、論理セクタアドレス166を入力として受け取る。BMU164は、出力として、物理セクタアドレス168及び設定ビット170のセット210を提供する。この設定ビット170のセット210は、論理セクタ内アドレス172を再マッピングするために組み合わせ論理200と連携して使用され得る。本実施形態において、再スクランブル論理によって提供される再マッピングは、消耗が大きいところから消耗が大きいところにサブセクタが配置されることを避けることによってセクタ内サイクルを平準化し得る。しかしながら、本明細書に述べた他のソリューションとは異なり、このソリューションによって最も大きい消耗を最も少ない消耗にするソリューションが必ずしも提供されるわけではない。
再マッピングするために、再スクランブル回路は、論理セクタ内アドレス172とセット210の間で組み合わせ論理200を使用して、再マッピング後の物理セクタ内アドレスを出力する。例えば、加算論理202を用いてアドレス「01」を有する4つ一組の群をアドレス「10」を有する4つ一組の群に再マッピングするためには、BMU164から提供される設定ビット170のセット210は「01」である。あるいは、XOR論理204を用いて同一の再マッピングを実行するためには、設定ビット170のセット210は「11」である。
本明細書に記載したセクタ内スワップシステム及びセクタ内スワップ技術を使用することにより、サブセクタのウェアレベリングを行う際の時間的特性が大幅に向上し得る。更に、セクタ内スワップの代わりに再スクランブル論理を使用することにより、ハードウェア及びソフトウェア論理のオーバーヘッドが減少し得る。
本発明には、様々な変形及び代替形態の余地があり得るが、特定の実施形態を一例として図面に示し、本明細書で詳細に説明してきた。しかしながら、開示された特定の形態に限定されることを本発明が意図するものではないことを理解すべきである。むしろ、本発明は、以下に続く添付された特許請求の範囲によって定められる本発明の趣旨及び範囲に含まれる全ての変形例、均等物及び代替物を網羅しようとするものである。

Claims (30)

  1. メモリデバイスであって、
    1つ以上のサブセクタを有するセクタで構成されるメモリアレイと、
    周辺インタフェースバスを介してデータを受信し、送信し、または送受信するように構成されたコントローラであって、
    前記メモリデバイスの消耗が大きいサブセクタであって、高ウェアレベルを有し、第1セクタに存在する前記サブセクタを検出し、
    低ウェアレベルを有する前記メモリデバイスの第2セクタを決定し、
    前記第1セクタを前記第2セクタとスワップし、
    前記第1セクタ、前記第2セクタ、またはその両方の少なくとも1つのサブセクタの位置を並べ替えるように構成されたウェアレベリング論理を備える前記コントローラと
    を備える、前記メモリデバイス。
  2. 前記ウェアレベリング論理は、前記第1セクタを前記第2セクタとスワップすると共に前記少なくとも1つのサブセクタの前記位置を並べ替えるように構成される、請求項1に記載のメモリデバイス。
  3. 前記ウェアレベリング論理は、
    最低のウェアレベルを有する前記第2セクタの最小サブセクタを決定し、
    前記消耗が大きいサブセクタの前記位置を前記最小サブセクタの位置とスワップすることにより、前記消耗が大きいサブセクタの前記位置を並べ替えるように構成される、請求項1に記載のメモリデバイス。
  4. 前記ウェアレベリング論理は、
    前記第1セクタの全てのサブセクタを第1セットのサブセクタ群に束ね、
    前記第2セクタの全てのサブセクタを第2セットのサブセクタ群に束ね、
    前記消耗が大きいサブセクタを含む第1の群の位置を、前記最小サブセクタを含む第2の群の位置とスワップするように構成される、請求項1に記載のメモリデバイス。
  5. 前記メモリデバイスは、NAND型フラッシュメモリデバイスで構成される、請求項1に記載のメモリデバイス。
  6. 前記メモリデバイスは、NOR型フラッシュメモリデバイスで構成される、請求項1に記載のメモリデバイス。
  7. 前記メモリアレイの1つ以上のセクタ内アドレスを変更するように構成された再スクランブル論理と、
    前記メモリアレイの1つ以上のセクタ、1つ以上のサブセクタ、またはその両方を再マッピングするように構成されたブロックマッピング部であって、設定ビットを前記再スクランブル論理に提供して前記1つ以上のセクタ内アドレスの前記変更を可能にするように構成された前記ブロックマッピング部とを備え、
    前記再スクランブル論理は、前記第1セクタ、前記第2セクタ、またはその両方の前記少なくとも1つのサブセクタの前記位置を並べ替えるのに使用される、請求項1に記載のメモリデバイス。
  8. 前記再スクランブル論理はマルチプレクサ(MUX)を備え、
    前記設定ビットは複数のビットセットを含み、各ビットセットはアドレス変更を表し、
    前記MUXは、前記複数のビットセットのうちの1つを選択するように構成され、前記選択により、前記複数のビットセットのうちの前記選択された1つによって表されるアドレス変更が生じる、請求項7に記載のメモリデバイス。
  9. 前記再スクランブル論理は組み合わせ論理を備え、
    前記設定ビットは1セットの設定ビットを含み、
    前記組み合わせ論理は、前記1セットの設定ビットを用いたセクタ内アドレスの変更に影響を与える、請求項7に記載のメモリデバイス。
  10. 前記組み合わせ論理は加算組み合わせ論理を備える、請求項9に記載のメモリデバイス。
  11. 前記組み合わせ論理は排他的or(XOR)組み合わせ論理を備える、請求項9に記載のメモリデバイス。
  12. メモリデバイスにおいて、消耗が大きいサブセクタであって、高ウェアレベルを有し、第1セクタに存在する前記サブセクタを検出することと、
    低ウェアレベルを有する前記メモリデバイスの第2セクタを決定することと、
    前記第1セクタを前記第2セクタとスワップすることと、
    前記第1セクタ、前記第2セクタ、またはその両方の少なくとも1つのサブセクタの位置を並べ替えることと
    を含む方法。
  13. 最低のウェアレベルを有する前記第2セクタの最小サブセクタを決定することと、
    前記消耗が大きいサブセクタの前記位置を前記最小サブセクタの位置とスワップすることにより、前記消耗が大きいサブセクタの前記位置を並べ替えることと
    を含む、請求項12に記載の方法。
  14. 前記第1セクタの全てのサブセクタを第1セットのサブセクタ群に束ねることと、
    前記第2セクタの全てのサブセクタを第2セットのサブセクタ群に束ねることと、
    前記消耗が大きいサブセクタを含む第1の群の位置を、前記最小サブセクタを含む第2の群の位置とスワップすることと
    を含む、請求項12に記載の方法。
  15. 前記メモリアレイの1つ以上のセクタ内アドレスを変更して、前記第1セクタ、前記第2セクタ、またはその両方の前記少なくとも1つのサブセクタの前記位置を並べ替えることを含む、請求項12に記載の方法。
  16. マルチプレクサを用いて前記メモリアレイの前記1つ以上のセクタ内アドレスを変更することを含む、請求項15に記載の方法。
  17. 加算論理、排他的or(XOR)論理、またはその両方を備えた組み合わせ論理を用いて前記メモリアレイの前記1つ以上のセクタ内アドレスを変更することを含む、請求項15に記載の方法。
  18. 有形の非一時的機械可読媒体であって、
    メモリデバイスにおいて、消耗が大きいサブセクタであって、高ウェアレベルを有し、第1セクタに存在する前記サブセクタを検出し、
    低ウェアレベルを有する前記メモリデバイスの第2セクタを決定し、
    前記第1セクタを前記第2セクタとスワップし、
    前記第1セクタ、前記第2セクタ、またはその両方の少なくとも1つのサブセクタの位置を、
    前記消耗が大きいサブセクタの位置を前記第2セクタ中の消耗が少ないサブセクタの位置とスワップすること、
    前記第1セクタ、前記第2セクタ、もしくはその両方の1つ以上のセクタ内アドレスを変更すること、
    またはその両方
    によって並べ替える命令を含む、前記機械可読媒体。
  19. 前記第1セクタの全てのサブセクタを第1セットのサブセクタ群に束ね、
    前記第2セクタの全てのサブセクタを第2セットのサブセクタ群に束ね、
    前記消耗が大きいサブセクタを含む第1の群の位置を、前記消耗が少ないサブセクタを含む前記第2セクタ中の第2の群の位置とスワップすることにより、
    前記消耗が大きいサブセクタの前記位置を、前記最小サブセクタ中の前記消耗が少ないサブセクタの前記位置とスワップする命令を含む、請求項18に記載の機械可読媒体。
  20. マルチプレクサを使用して前記1つ以上のセクタ内アドレスに対する1つ以上の変更を選択すること、
    組み合わせ論理を使用して前記1つ以上のセクタ内アドレスに1つ以上の変更を加えること、
    またはその両方により、
    前記第1セクタ、前記第2セクタ、またはその両方の前記1つ以上のセクタ内アドレスを変更する命令を含む、請求項18に記載の機械可読媒体。
  21. メモリコントローラであって、
    メモリデバイスの消耗が大きいサブセクタであって、高ウェアレベルを有し、第1セクタに存在する前記サブセクタを検出し、
    低ウェアレベルを有する前記メモリデバイスの第2セクタを決定し、
    前記第1セクタを前記第2セクタとスワップし、
    前記第1セクタ、前記第2セクタ、またはその両方の少なくとも1つのサブセクタの位置を並べ替えるように構成された回路
    を備える、前記メモリコントローラ。
  22. 前記回路は、前記第1セクタを前記第2セクタとスワップすると共に前記少なくとも1つのサブセクタの前記位置を並べ替えるように構成される、請求項21に記載のメモリコントローラ。
  23. 前記回路は、
    最低のウェアレベルを有する前記第2セクタの最小サブセクタを決定し、
    前記消耗が大きいサブセクタの前記位置を前記最小サブセクタの位置とスワップすることにより、前記消耗が大きいサブセクタの前記位置を並べ替えるように構成される、請求項21に記載のメモリコントローラ。
  24. 前記回路は、
    前記第1セクタの全てのサブセクタを第1セットのサブセクタ群に束ね、
    前記第2セクタの全てのサブセクタを第2セットのサブセクタ群に束ね、
    前記消耗が大きいサブセクタを含む第1の群の位置を、前記最小サブセクタを含む第2の群の位置とスワップするように構成される、請求項21に記載のメモリコントローラ。
  25. 前記回路は、
    メモリアレイの1つ以上のセクタ内アドレスを変更して、前記第1セクタ、前記第2セクタ、またはその両方の前記少なくとも1つのサブセクタの前記位置を並べ替えるように構成される、請求項21に記載のメモリコントローラ。
  26. メモリシステムであって、
    データを管理し、記憶し、または管理及び記憶するように構成されたスレーブデバイスと、
    データフレームを前記スレーブデバイスに提供して前記データの前記管理、記憶、または前記管理及び保存を容易にするように構成されたマスタデバイスと、
    前記マスタデバイスを前記スレーブデバイスに通信可能に接続するように構成された周辺インタフェースであって、前記データフレームは、前記マスタデバイスから前記スレーブデバイスに前記周辺インタフェースを介して提供される、前記周辺インタフェースと、
    ウェア論理であって、
    前記スレーブデバイスにおいて、消耗が大きいサブセクタであって、高ウェアレベルを有し、第1セクタに存在する前記サブセクタを検出し、
    前記スレーブデバイスにおいて、低ウェアレベルを有する第2セクタを決定し、
    前記第1セクタを前記第2セクタとスワップし、
    前記第1セクタ、前記第2セクタ、またはその両方の少なくとも1つのサブセクタの位置を並べ替えるように構成された前記ウェア論理と
    を備える、メモリシステム。
  27. 前記ウェア論理は、前記スレーブデバイスのコントローラ内に搭載されている、請求項26に記載のメモリシステム。
  28. 前記ウェア論理は、少なくとも部分的には前記マスタデバイスに搭載されている、請求項26に記載のメモリシステム。
  29. 前記ウェア論理は、
    前記第1セクタの全てのサブセクタを第1セットのサブセクタ群に束ね、
    前記第2セクタの全てのサブセクタを第2セットのサブセクタ群に束ね、
    前記消耗が大きいサブセクタを含む第1の群の位置を、前記最小サブセクタを含む第2の群の位置とスワップするように構成される、請求項26に記載のメモリシステム。
  30. 前記ウェア論理は、メモリアレイの1つ以上のセクタ内アドレスを変更して、前記第1セクタ、前記第2セクタ、またはその両方の前記少なくとも1つのサブセクタの前記位置を並べ替えるように構成される、請求項26に記載のメモリシステム。
JP2017525331A 2014-11-13 2015-11-02 メモリウェアレベリング Active JP6317039B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/540,968 US9830087B2 (en) 2014-11-13 2014-11-13 Memory wear leveling
US14/540,968 2014-11-13
PCT/US2015/058634 WO2016077091A1 (en) 2014-11-13 2015-11-02 Memory wear leveling

Publications (3)

Publication Number Publication Date
JP2017538206A true JP2017538206A (ja) 2017-12-21
JP2017538206A5 JP2017538206A5 (ja) 2018-02-08
JP6317039B2 JP6317039B2 (ja) 2018-04-25

Family

ID=55954861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017525331A Active JP6317039B2 (ja) 2014-11-13 2015-11-02 メモリウェアレベリング

Country Status (6)

Country Link
US (2) US9830087B2 (ja)
JP (1) JP6317039B2 (ja)
KR (1) KR102245652B1 (ja)
CN (1) CN107003810B (ja)
TW (1) TWI576758B (ja)
WO (1) WO2016077091A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021506053A (ja) * 2017-12-05 2021-02-18 マイクロン テクノロジー,インク. 不揮発性メモリにおけるデータ移動動作
JP2022551627A (ja) * 2019-10-09 2022-12-12 マイクロン テクノロジー,インク. 自己適応型ウェアレベリングの方法及びアルゴリズム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US11269546B2 (en) 2017-07-18 2022-03-08 Sony Semiconductor Solutions Corporation Memory controller, memory system, information processing system, and memory control method
US20190129627A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Method and system for wear-leveling using a multi-gap progress field
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质
US10817430B2 (en) 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JP2006504201A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
WO2010038736A1 (ja) * 2008-10-01 2010-04-08 株式会社日立製作所 半導体装置
US20140310569A1 (en) * 2013-04-11 2014-10-16 Spansion Llc Restoring ECC syndrome in non-volatile memory devices

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
EP1265252A1 (en) * 2001-06-05 2002-12-11 STMicroelectronics S.r.l. A method for sector erasure and sector erase verification in a non-voltaile FLASH EEPROM
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7103732B1 (en) * 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US8706990B2 (en) * 2003-10-28 2014-04-22 Sandisk Technologies Inc. Adaptive internal table backup for non-volatile memory system
US7089349B2 (en) * 2003-10-28 2006-08-08 Sandisk Corporation Internal maintenance schedule request for non-volatile memory system
US7415646B1 (en) * 2004-09-22 2008-08-19 Spansion Llc Page—EXE erase algorithm for flash memory
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
WO2007039859A2 (en) * 2005-10-05 2007-04-12 Nxp B.V. Teletext processing circuit
US7778088B2 (en) * 2006-12-19 2010-08-17 Spansion Llc Erasing flash memory using adaptive drain and/or gate bias
US8321597B2 (en) * 2007-02-22 2012-11-27 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
US8543742B2 (en) * 2007-02-22 2013-09-24 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
EP1988549B1 (fr) * 2007-05-02 2010-10-27 Stmicroelectronics Sa Mémoire non volatile à effacement partiel
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US8429329B2 (en) 2007-10-17 2013-04-23 Micron Technology, Inc. Serial interface NAND
US8694715B2 (en) * 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
US8352671B2 (en) * 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
WO2009102821A2 (en) * 2008-02-12 2009-08-20 Virident Systems, Inc. Methods and apparatus for two-dimensional main memory
US8724381B2 (en) * 2008-03-11 2014-05-13 Agere Systems Llc Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US8738840B2 (en) * 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US20110002169A1 (en) * 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
EP2302638B1 (fr) * 2009-09-21 2013-04-17 STMicroelectronics (Rousset) SAS Procédé d'écriture et de lecture de données dans une mémoire non volatile, au moyen de métadonnées
US8892980B2 (en) * 2010-06-15 2014-11-18 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US9170933B2 (en) * 2010-06-28 2015-10-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
US20110320910A1 (en) * 2010-06-29 2011-12-29 Yi-Chun Liu Storage management method and storage system
WO2012050935A2 (en) * 2010-09-28 2012-04-19 Fusion-Io, Inc. Apparatus, system, and method for data transformations within a data storage device
US8273610B2 (en) * 2010-11-18 2012-09-25 Monolithic 3D Inc. Method of constructing a semiconductor device and structure
US8583987B2 (en) * 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
WO2012100087A2 (en) * 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
KR20120132820A (ko) * 2011-05-30 2012-12-10 삼성전자주식회사 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법
WO2013095641A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Sub-block based wear leveling
US8842473B2 (en) * 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US9430322B2 (en) 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US20140129758A1 (en) 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US9405621B2 (en) * 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9547586B2 (en) * 2013-01-03 2017-01-17 Macronix International Co., Ltd. Metadata containers with indirect pointers
JP5931816B2 (ja) * 2013-08-22 2016-06-08 株式会社東芝 ストレージ装置
US9195590B2 (en) * 2013-08-29 2015-11-24 Micron Technology, Inc. Sub-sector wear leveling in memories
KR102136396B1 (ko) * 2013-08-30 2020-07-22 삼성전자주식회사 디램의 배드 페이지 관리 기능을 갖는 디램 콘트롤러 및 그에 따른 배드 페이지 관리방법
US9336129B2 (en) * 2013-10-02 2016-05-10 Sandisk Technologies Inc. System and method for bank logical data remapping
WO2015086847A2 (fr) * 2013-12-12 2015-06-18 Commissariat A L'energie Atomique Et Aux Energies Alternatives Systeme et procede de gestion de l'usure d'une memoire electronique
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JP2006504201A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
WO2010038736A1 (ja) * 2008-10-01 2010-04-08 株式会社日立製作所 半導体装置
US20140310569A1 (en) * 2013-04-11 2014-10-16 Spansion Llc Restoring ECC syndrome in non-volatile memory devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021506053A (ja) * 2017-12-05 2021-02-18 マイクロン テクノロジー,インク. 不揮発性メモリにおけるデータ移動動作
US11341038B2 (en) 2017-12-05 2022-05-24 Micron Technology, Inc. Data movement operations in non-volatile memory
JP2022551627A (ja) * 2019-10-09 2022-12-12 マイクロン テクノロジー,インク. 自己適応型ウェアレベリングの方法及びアルゴリズム

Also Published As

Publication number Publication date
TW201633110A (zh) 2016-09-16
US20180067661A1 (en) 2018-03-08
US20160139826A1 (en) 2016-05-19
KR102245652B1 (ko) 2021-04-29
TWI576758B (zh) 2017-04-01
JP6317039B2 (ja) 2018-04-25
KR20170084194A (ko) 2017-07-19
CN107003810A (zh) 2017-08-01
WO2016077091A1 (en) 2016-05-19
CN107003810B (zh) 2019-01-29
US9830087B2 (en) 2017-11-28

Similar Documents

Publication Publication Date Title
JP6317039B2 (ja) メモリウェアレベリング
US11086529B2 (en) Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9448868B2 (en) Data storing method, memory control circuit unit and memory storage apparatus
US9946478B2 (en) Memory managing method, memory control circuit unit and memory storage apparatus
US8417879B2 (en) Method for suppressing errors, and associated memory device and controller thereof
US9122498B2 (en) Firmware code loading method, memory controller and memory storage apparatus
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US9639475B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US20190235789A1 (en) Method for performing writing management in a memory device, and associated memory device and controller thereof
US11609712B2 (en) Write operations to mitigate write disturb
US10564899B2 (en) Data writing method for rewritable non-volatile memory modules based on use information, memory storage device and memory control circuit unit
US9312011B1 (en) Data writing method, memory storage device and memory control circuit unit
US11704055B2 (en) Storage device, controller and method for operating thereof
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US11462278B2 (en) Method and apparatus for managing seed value for data scrambling in NAND memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171215

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180220

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: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180328

R150 Certificate of patent or registration of utility model

Ref document number: 6317039

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250