JP2019533213A - 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス - Google Patents

不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス Download PDF

Info

Publication number
JP2019533213A
JP2019533213A JP2019503550A JP2019503550A JP2019533213A JP 2019533213 A JP2019533213 A JP 2019533213A JP 2019503550 A JP2019503550 A JP 2019503550A JP 2019503550 A JP2019503550 A JP 2019503550A JP 2019533213 A JP2019533213 A JP 2019533213A
Authority
JP
Japan
Prior art keywords
wear leveling
logical
memory
partition
parameters
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
JP2019503550A
Other languages
English (en)
Other versions
JP6816253B2 (ja
JP2019533213A5 (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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor 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 Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of JP2019533213A publication Critical patent/JP2019533213A/ja
Publication of JP2019533213A5 publication Critical patent/JP2019533213A5/ja
Application granted granted Critical
Publication of JP6816253B2 publication Critical patent/JP6816253B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

本明細書中には、不揮発性メモリデバイスのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイスを開示する。デバイスは不揮発性メモリを含み、この不揮発性メモリは複数の物理的メモリ部分を含み、これら複数の物理的メモリ部分の各々は、複数の論理的メモリ部分のうちの1つの論理的メモリ部分にマッピングされるように構成されている。デバイスはウェアレベリング制御回路を含むこともでき、このウェアレベリング制御回路は、複数のウェアレベリングのパラメータを受信するように構成され、さらに、受信した複数のウェアレベリングのパラメータに基づいて複数のウェアレベリングの特性を決定するように構成され、これら複数のウェアレベリングの特性は、複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別する。

Description

関連出願のクロスリファレンス
本願は米国特許非仮出願第15/388892号、2016年12月22日の国際出願であり、この米国特許非仮出願は、35 U.S.C§119(e)の下で米国特許仮出願第62/403340号、2016年10月3日出願による優先権を主張し、これらの特許出願のすべては、いかなる目的でもその全文を参照することによって本明細書中に含める。
技術分野
本発明は一般に不揮発性メモリに関するものであり、より具体的には、不揮発性メモリに関連するウェアレベリング(wear leveling:劣化平準化)に関するものである。
不揮発性メモリデバイスはメモリセル・アレイを含み、これらのメモリセル・アレイは、システムの他の種々の構成要素によるアクセス用にデータ値を記憶するように構成することができる。メモリセルはメモリ素子を含み、これらのメモリ素子は、有効データをより短時間保持することによって長い時間と共に劣化し得る、というのは、セルに対して行われるプログラム及び消去動作の回数(PE(program and erase)サイクル数)が増加するからである。こうしたメモリセルは、物理セクターにグループ化された物理的な記憶場所を含むことができ、これらのセクターは、メモリセル・アレイのメモリ空間を表現する論理アドレス及び論理セクターにマッピングされる。ウェアレベリングは、データの物理的記憶場所を変化させて、PEサイクルによる劣化(ウェア)をいくつかの物理的セクターにわたって拡散するように実現することができる。しかし、こうしたウェアレベリングは、より低頻度のサイクルのデータも、既に多数回のPEサイクルが行われた物理セクターへ移動させることがある。従って、ウェアレベリング技術は、PEサイクルが稀にしか行われないデータの保持時間を不用意に低下させることがある。
いくつかの実施形態により構成した、2つ以上のサイズのセクターを含む設定可能なウェアレベリング付きメモリデバイスの例を示す図である。 いくつかの実施形態により構成した、均一なセクターサイズを含む設定可能なウェアレベリング付きメモリデバイスの例を示す図である。 いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示す図であり、パラメータセクターはウェアレベリングから除外し、他のセクターは固定のパーティションサイズにグループ化している。 いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の例を示すフローチャートである。 いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の他の例を示すフローチャートである。 いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示す図である。
詳細な説明
以下の説明では、本発明の概念の完全な理解をもたらすために、多数の具体的細部を説明する。提示する概念は、これらの具体的細部の一部または全部なしで実施することができる。他の例では、説明する概念を不必要にあいまいにしないように、周知のプロセス動作は詳細に説明していない。一部の概念は特定例に関連して説明するが、これらの例は限定的であることを意図していないことは明らかである。
種々の実施形態では、メモリデバイスを、当該メモリデバイスに対して行うことができるプログラム及び消去(PE)サイクルの回数について制限することができる、というのは、メモリセルが、十分な期間にわたって高い信頼性でデータを保持することができなくなる点まで劣化するからである。PEサイクルの回数(本明細書では耐久性とも称する)が増加するほど、データが高い信頼性で保持される時間長(本明細書では保持力とも称する)が低減される。一部の実施形態では、頻繁に修正される情報をメモリアレイの種々の異なる領域へ移動させて、あらゆる1つの領域において実現されるPEサイクルの回数を制限するために、ウェアレベリング技術を実現することができる。こうしたウェアレベリング技術を用いて、情報の1つの論理ブロックを記憶するメモリの1つの領域上の実効的なPEサイクル数を低減することができる。しかし、メモリアレイ全体に適用する際には、ウェアレベリングは、情報の複数の論理ブロックを記憶するメモリの複数の領域のうち比較的低頻度で修正される領域上でのPEサイクル数も増加させ、これにより、比較的低頻度で修正される情報の保持期間も低下させる。さらに、こうしたデータの移動に起因する保持期間の低下は、メモリのユーザが知らないうちに発生し得る。ユーザは、メモリアレイの低サイクル数の領域はより長い保持時間を有するものと信じ込むが、ウェアレベリング技術は、実際には、低サイクル数の物理セクターからより高サイクル数の物理セクターへ情報を移動させることによって保持期間が低下していることがある。種々の実施形態では、1セクターを消去、及び/または、プログラムまたは上書きの単位とすることができる。従って、1セクターのサイズは、メモリにおける消去、プログラム、または上書き動作に含まれる部分のサイズによって決定または定義することができる。
以下でより詳細に説明するように、ウェアレベリング技術は、論理セクターを物理セクターにマッピングし、各物理セクターの消去カウント数を追跡する種々の方法を含むことができ、このため、ある物理セクターについてPEサイクル数の閾値に達すると、この物理セクター内のデータを、消去サイクル数のより少ない他の物理セクターへ移動して、論理−物理のマップを更新する。このことは、論理セクターを、どの物理セクターにおいて可能であるよりも多数のPEサイクル数をサポートするように見せ、従って、1つの論理セクターのPEサイクルによる劣化を多数の物理セクターにわたって拡散させ、これにより、長い時間がたつと、すべての物理セクターが、およそ等しいPEサイクル及び劣化の回数を有する。
一部のウェアレベリング技術は限度のあるままである、というのは、これらの技術は、サイクル能力を増加させるためにメモリアレイのどの部分にウェアレベリングを施し、より長時間のデータ保持を維持するためにメモリアレイのどの部分にウェアレベリングを施さないかのユーザ制御を何ら提供しないからである。例えば、内部ウェアレベリング・メカニズムを有する一部のメモリデバイスは、ウェアレベリング動作中にデバイス内の大部分または全部の物理セクターを使用する。こうした実施形態では、メモリデバイスは、どの論理セクターを、ある論理セクターが現在使用中の物理セクターよりも多数回のPEサイクルが行われた物理セクター内へ移転(リロケート)することができるかを制御することができない。このことは、長い保持時間を必要とするデータを含む論理セクターを、より多数回のPEサイクルが行われた物理セクターへ移動させることがあり、従って、フラッシュデバイスのユーザが知らないうちに保持時間を低下させる。従って、稀に更新されるコードのようにメモリにおける長時間の保持が望まれる領域が、ウェアレベリング・アルゴリズムによって、多数回のPEサイクルが行われるセクター内へ移動されることがあり、このため、そのメモリ領域における保持時間をユーザが知らないうちに低下させる。
本明細書中では、ユーザ設定可能なウェアレベリングを実現するメモリデバイスを提供するように構成された種々の実施形態を開示する。従って、メモリアレイの一部の領域は、一部の論理セクターのより高い見かけの耐久性のためにウェアレベリングを施すことができ、メモリアレイの他の領域は、保持を維持するためにウェアレベリングを施さない。メモリアレイにおけるウェアレベリングを施す部分及びウェアレベリングを施さない部分は、本明細書中に開示する多数の方法で明示的に規定することができる。一例では、アドレスポインタを用いて、メモリアレイ内のパーティション(アドレス範囲)間の境界(バウンダリ)を規定し、パーティション毎に、当該パーティションがウェアレベリングにおいて使用されるセクターのプール(集まり)内にあるか、ウェアレベリングのプール内にないかを示すことができる。こうした論理アドレス範囲の明示的規定は、どのメモリ領域でより少数回のPEサイクルを行い、従ってより長時間の保持を行い、どの領域が、メモリの単一領域がサポートすることができるPEサイクル数よりも多数回のPEサイクルを実効的に行うことができるかについての、メモリのユーザ制御を与える。こうした設定可能なウェアレベリングの追加的な詳細は以下に提供する。
図1に、いくつかの実施形態により構成した、2つ以上のサイズのセクターを含む設定可能なウェアレベリング付きメモリデバイスの例を示す。以下により詳細に説明するように、メモリデバイス100のようなメモリデバイスは、ウェアレベリングにおいて使用する物理的メモリ部分の集合またはプール内に含めるための、メモリのいくつかの論理的部分をユーザが明示的に選択することを可能にするように構成することができ、さらに、他の論理的メモリ部分をこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にするように構成されている。連続した論理的部分のグループをパーティションと称し、各パーティションは、ウェアレベリングにおける使用向けに指定すること、あるいはウェアレベリングから除外することができる。従って、本明細書中に開示する種々の実施形態は、どの論理的部分が低いPEサイクル数を有することができ、従ってより長時間のデータ保持を行うか、これに対しどの論理的部分が高いPEサイクル数の耐久性を有することができるが、より短時間のデータ保持を行うかを選定するフレキシビリティ(柔軟性)をユーザにもたらす。以下により詳細に説明するように、論理的部分は論理セクターを記述することができ、物理的部分は物理セクターを記述することができる。しかし、種々の実施形態では、こうした部分はセクターと合わせなくてもよく、ある部分はメモリ空間内のセクターと直接対応しなくてもよい。
種々の実施形態では、メモリデバイス100は、不揮発性メモリ素子をメモリアレイ102のようなメモリアレイの形で含む記憶デバイスとすることができる。従って、メモリアレイ102は複数のメモリ素子の多数の列及び行を含むことができ、これらのメモリ素子はセクターにグループ化または分割することができる。種々の実施形態では、こうしたセクターはワード(語)のようなデータ単位のグループとすることができ、こうしたグループは消去する単位とすることができる。種々の実施形態では、図1に示すセクターは論理セクターであり、物理セクターにマッピングすることができる。一部の実施形態では、論理セクターは、メモリアレイ内のデータの物理的な記憶場所とは独立したメモリアレイのアドレスによって参照されるデータのセクターとすることができる。従って、ホストシステムは、論理セクターを(例えば、メモリアレイのアドレス0から始まる)特定アドレスに常駐するものとして見ることができる。この例では、データは実際にはメモリアレイのアドレス空間の異なる部分内の異なる物理アドレスに配置することができる。種々の実施形態では、メモリデバイス100は、データの論理アドレスから対応する実際の物理的記憶場所へのマッピングテーブルを維持する。このようにして、メモリデバイス100は、物理的メモリセクターにマッピングすることができる種々の論理的メモリセクターを含むことができる。種々の実施形態では、メモリアレイ102が可変サイズのメモリセクターを含むことができる。例えば、メモリアレイ102はスーパーバイザー(管理用)のメモリセクター130を含むことができ、メモリセクター130は4キロバイト(KB)のような第1サイズを有することができ、第1メモリセクター104をさらに含むことができ、第1メモリセクター104は大きなメモリセクターとすることができ、256KBのような第2サイズを有することができる。一部の実施形態では、メモリアレイ102が第2メモリセクター106を含むこともでき、第2メモリセクター106はメモリアレイ102内の最終メモリセクターとすることができ、これも4KBの第1サイズを有することができる。
さらに、これらのセクターはパーティションにグループ化することができる。従って、メモリアレイ102は種々のメモリ・パーティションを含むことができ、これらは論理セクターの連続したグループであり、境界によって規定することができる。例えば、メモリアレイ102は、第1境界110、第2境界112、第3境界114、及び第4境界116を含むことができ、これらの境界は第1パーティション118、第2パーティション120、第3パーティション122、第4パーティション124、及び第5パーティション126を規定する。以下により詳細に説明するように、こうした境界は、ユーザ指定とすることができるウェアレベリングのパラメータに基づいて設定可能にすることができる。従って、ユーザはサイズ及び境界をパーティションに関連して規定及び指定することができる。さらに、ウェアレベリングのパラメータは、特定パーティションを、ウェアレベリングにおいて使用する物理的セクターに含めるか否かを示すことができる。以下により詳細に説明するように、パーティションのサイズはフレキシブルにすることも、ユーザ入力に基づいて設定可能にすることもできる。
前に説明したように、ウェアレベリングは、メモリデバイス100のようなメモリデバイス内の論理セクターの耐久性を向上させるために用いられるセクター消去管理技術とすることができる。ウェアレベリングは、1つの論理セクターに適用されるPEサイクル数を、メモリデバイス内の物理セクターの集合またはプール内の複数の物理セクターにわたって拡散させる。物理セクターのプールは、論理セクターのデータのリロケーション(移転)用に利用可能である。例えば、ウェアレベリングを改善する際には、論理セクターを物理セクターにマッピングすることができ、そして各物理セクターの消去カウント数を追跡して、特定の物理セクターにおいてPEサイクル数の閾値に達するかPEサイクル数の閾値を超えると、この物理セクター内のデータを、より少数の消去サイクル数を有する他の物理セクターへ移動して、論理−物理のマップを更新する。こうした物理セクターのPEサイクル数の追跡、及び複数の物理セクターにわたる論理セクターの移動は、論理セクターを、どの物理セクターにおいて可能であるよりも多数のPEサイクル数をサポートするように見せる。従って、PEサイクルによる論理セクターの劣化が多数の物理セクターにわたって拡散して、これにより、長い時間がたつと、すべての物理セクターにおよそ等しいPEサイクルの回数分の劣化が生じる。
特定例では、種々のセクターが、1つのより小さい論理セクターをより大きい物理セクター内に置く形態のウェアレベリングを利用することができ、この物理セクターのサブセクション(小区分)は個別に消去することができる。物理セクターにおける、より小さい論理セクターによって使用されている部分は、特定回数の消去サイクルを施され、論理セクターのデータは、より大きい物理セクターの次のサブセクションへ移動させる。より小さい論理セクターによって現在使用されていないすべてのサブセクションは消去したままに保って、列のリーク(漏れ)を最小にする。物理セクター全体にわたるこうした論理セクターの移動は、PEサイクルによる劣化を、より大きい物理セクターの全体にわたって拡散する。種々の実施形態では、より小さい論理セクターのデータが同じより大きい物理セクター内に留まる。
従って、ウェアレベリングは、論理セクターを物理セクターにマッピングするマッピングに基づく。メモリデバイス100のようなメモリデバイスの寿命中には、こうしたマッピングは、論理セクターの内容が高いPEサイクル数の物理セクターから低いPEサイクル数の物理セクターへ移動すると共に変化する。このことは、すべての物理セクターにわたるPEサイクル数のより均一な分布をもたらす。論理−物理のマッピング情報は専用のメモリアレイに記憶され、論理セクターのデータを1つの物理セクターから他の物理セクターへ移動する際に、このマッピング情報を更新する。セクターデータの移動は、プログラム・コマンド及び/または消去コマンド(命令語)を、プロセッサのようなホストシステムまたはホスト構成要素が与える際に発生し得る。
以下により詳細に説明するように、制御回路128のような制御回路、及びスーパーバーザーのメモリセクター130のような専用の記憶場所またはレジスタを利用して、論理セクター−ウェアレベリングを施す物理セクターのマッピングを設定する。本明細書中に説明するように、本明細書中では制御回路をウェアレベリング制御回路と称することがある。より具体的には、ウェアレベリングのパラメータを受信して、どの論理セクターを、ウェアレベリングのプール内に含めてウェアレベリングを施す物理セクターにマッピングするべきかを識別することができる。これらのウェアレベリングのパラメータを用いて、どの論理セクターを、ウェアレベリングのプール内に含めず、ウェアレベリングを施さない物理セクターにマッピングするべきかを明示的に識別することもできる。以上に説明したように、メモリデバイス100のようなメモリデバイスは、ウェアレベリングのプール内に含まれウェアレベリングが施される種々のメモリセクターを含むことができ、ウェアレベリングのプール内に含まれずウェアレベリングを施されないメモリセクターをさらに含むことができる。このようにして、ウェアレベリングのパラメータは、どのパーティション及び対応する論理的メモリセクターを、ウェアレベリングが施される物理セクターに含め、どのパーティション及び対応する論理的メモリセクターを除外するべきかを識別するように設定することができる。
より具体的には、スーパーバーザーのメモリセクター130は、マッピングを識別する1つ以上のデータ値を記憶するように構成することができ、このマッピングは、論理的メモリセクターを識別し、さらに、こうしたメモリセクターが含まれるパーティションを識別し、さらに、こうしたパーティションに関連するウェアレベリング設定値を識別する。こうしたマッピングの表現の例を以下の表1に示す:
Figure 2019533213
従って、表1では、マッピングが、論理アドレス・セクター並びにそれに関連するパーティションを識別することができる。さらに、このマッピングは、パーティション毎のウェアレベリング設定値を識別することができる。以上に説明したように、こうしたウェアレベリングの設定値または特性は、受信したユーザ入力に基づくユーザ指定及びユーザ決定とすることができる。このようにして、ユーザは論理的メモリセクター及びパーティションを、物理的メモリセクターのウェアレベリングのプール内に含まれるように、あるいはウェアレベリングのプールから除外されるように明示的に割り当てることができる。さらに、第5パーティション126のようなパーティションがマッピングに含まれない場合、このパーティションには、(ウェアレベリングのプール内に)含めるべきであることを示す「1」のようなデフォルト値を割り当てることができる。同様に、こうしたデフォルト値は「0」にすることができる。
本明細書中には、論理的メモリセクターをウェアレベリングのプールに割り当てることに関する種々の実施形態を考えに入れ開示する。例えば、明示的なパーティションのラベル付けを前に説明しているが、他の適切な技術も実現することができる。例えば、スーパーバーザーのメモリセクター130のような記憶場所は、いくつかの所定のパーティション・マップを記憶することができ、そして設定パラメータまたは設定値を用いて、使用するマップを選択することができる。一部の実施形態では、こうした所定のマップを、メモリアレイ102のアドレス空間の異なる見方に基づいて生成することができる。例えば、所定のマップは、メモリアドレス空間のうち下位8分の1のアドレスをウェアレベリングから除外する第1マップを含むことができる。所定のマップは、アドレス空間の下位4分の1をウェアレベリングから除外する第2マップをさらに含むことができる。所定のマップは、アドレス空間の下位2分の1をウェアレベリングから除外する第3マップを含むこともできる。この例では、ユーザは、設定パラメータを含む入力を与えて、適用するべき特定の所定マップを選択することができる。こうした所定のパーティション・マップの例を以下の表2、3、及び4に示す:
Figure 2019533213
表2に示すように、アドレス空間の下位8分の1はウェアレベリングから除外されている。
Figure 2019533213
表3に示すように、アドレス空間の下位4分の1はウェアレベリングから除外されている。
Figure 2019533213
表4に示すように、アドレス空間の下位2分の1はウェアレベリングから除外されている。上記の例はいくつかの実施形態を示すが、他の種々の実施形態が考えられ、本明細書中に開示する。例えば、より多数のメモリセクターが実現されて利用可能であれば、メモリ空間の割り付けを、メモリ空間の1/16または1/32の粒度で実現することができる。さらに、メモリの各部分は、「0」のアドレスからのようにメモリのいずれかの側から、あるいはメモリの最下位または最上位から割り当てることができる。従って、上記の例は本明細書中に開示する実施形態の範囲を限定することは意図していない。
さらに、論理的メモリセクターをウェアレベリングのプールに割り当てることは、アドレスポインタを利用して、ウェアレベリングに含めるべき、あるいはウェアレベリングから除外するべきパーティション用のアドレス範囲を規定することによって実現することができる。例えば、アドレスポインタは、パーティションを規定するアドレス範囲の始点及び終点を識別することができ、さらに、こうしたパーティションに関連するウェアレベリング設定値を識別することができる。以下の表5中に例示するように、第1及び第2アドレスポインタを含む第1アドレスポインタ対は、パーティション0の始点及び終点を識別することができ、さらに、パーティション0をウェアレベリングのプールから除外するべきことを示すウェアレベリング設定値を識別することができる。さらに、第3及び第4アドレスポインタを含む第2アドレスポインタ対は、パーティション1の始点及び終点を識別することができ、さらに、パーティション1をウェアレベリングのプール内に含めるべきことを示すウェアレベリング設定値を識別することができる。さらに、第5及び第6アドレスポインタを含む第3ポインタ対は、パーティション2の始点及び終点を識別することができ、さらに、パーティション2をウェアレベリングのプールから除外するべきことを示すウェアレベリング設定値を識別することができる。一部の実施形態では、ウェアレベリングのプール内に含まれるパーティションのみにアドレスポインタ対を与えることができ、他のパーティションは「0」のデフォルト値に設定してウェアレベリングのプールから除外することができる。種々の実施形態では、その逆も成り立つことができ、ウェアレベリングのプールから除外するパーティションのみにアドレスポインタ対を与えることができる。
Figure 2019533213
さらに、論理的メモリセクターをウェアレベリングのプールに割り当てることは、パーティション毎に単一のアドレスポインタを利用することによって実現することができる。一部の実施形態では、基準アドレスまたは他のポインタに対してパーティションを規定することができる。例えば、第1パーティション(パーティション0)は、ベースアドレスへの第1ポインタ(ポインタA)によって識別されるアドレス範囲によって規定することができ、このベースアドレスはメモリの始点アドレスとすることができる。第2パーティション(パーティション1)は、第1ポインタ(ポインタA)への、あるいは、より具体的には第1ポインタのインクリメント(増分値)(ポインタA+1)への第2ポインタによって識別されるアドレス範囲によって規定することができる。さらに、第3パーティション(パーティション2)は、メモリアレイのアドレス空間の終点のような他の基準アドレスによって、第2ポインタ(ポインタB)へのポインタによって、あるいは、より具体的には第2ポインタのインクリメント(ポインタB+1)へのポインタによって識別されるアドレス範囲によって規定することができる。以下の表6に示すように、このマッピングは、所定パーティションにおけるウェアレベリング設定値、及びアドレスポインタの有効性についてのトグルまたはフラグビットも記憶することができる。
Figure 2019533213
上記の説明は、ウェアレベリングに含めること、及びウェアレベリングから除外することを説明したが、以下により詳細に説明するように、複数のセクターに適用されるウェアレベリングの種々の特徴量も指定することができる。例えば、ウェアレベリングのパラメータは、各論理セクター、及びこうした論理セクターに関連する各パーティションに適用するウェアレベリングの特徴量を指定または識別するウェアレベリングの特性または設定値を含むことができる。従って、ウェアレベリングに含めることを特徴付けるウェアレベリングの特徴量に加えて、この値はウェアレベリングの数量または度合いを特徴付けることもできる。例えば、ウェアレベリングの特性は、第1パーティションに適用するべきウェアレベリングの第1限度を示す第1ウェアレベリング設定値、第2パーティションに適用するべきウェアレベリングの第2限度を示す第2ウェアレベリング設定値、第3パーティションに適用するべきウェアレベリングの第3限度を示す第3ウェアレベリング設定値、及び第4パーティションに適用するべきウェアレベリングの第4限度を示す第4ウェアレベリング設定値を含むことができる。
種々の実施形態では、ウェアレベリングの特性を、ウェアレベリングのパラメータに含まれる1つ以上の追加的種類の情報またはパラメータに基づいて定めることができる。例えば、ウェアレベリングのパラメータは、メモリセクターに関連するPEサイクルの回数を指定することができる。種々の実施形態では、こうした回数はユーザ指定とすることができ、予期されるPEサイクルの回数を特徴付けることができる。一部の実施形態では、制御回路128のような構成要素を、メモリセクターに適用するウェアレベリングの特徴量を指定回数のPEサイクルに基づいて識別するように構成することができる。例えば、この回数がPEサイクル数の閾値を上回る場合には、メモリセクターをウェアレベリングのプール内に含めることができる。さらに、この回数がPEサイクル数の閾値を下回る場合には、メモリセクターをウェアレベリングのプールから除外することができる。
以上に説明したように、ウェアレベリングのパラメータはパーティションの論理的サイズを指定することができる。一部の実施形態では、制御回路128のような構成要素を、メモリセクターに適用するウェアレベリングの特徴量をパーティションのサイズに基づいて識別するように構成することができる。例えば、識別されたサイズが指定したサイズよりも大きい場合には、メモリセクターをウェアレベリングのプール内に含めることができる。さらに、この数値が指定したサイズよりも小さい場合には、メモリセクターをウェアレベリングのプールから除外することができる。この例では、指定したサイズはデフォルト値とすることができ、あるいはユーザ指定とすることができる。こうしたウェアレベリングの構成の追加的詳細は、以下に図3、図4、図5、及び図6を参照しながらより詳細に説明する。
図2に、いくつかの実施形態により構成した、均一なセクターサイズを含む設定可能なウェアレベリング付きメモリデバイスの例を示す。以上に説明したように、メモリデバイス200のようなメモリデバイスは、ウェアレベリングにおいて使用する物理的メモリセクターの集合またはプール内に含めるための、メモリのいくつかの論理セクターをユーザが明示的に選択することを可能にするように構成することができ、さらに、他の論理的メモリセクターをこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にするように構成されている。また、以上に説明したように、メモリアレイ102のようなメモリアレイは、種々の境界によって規定される種々のパーティションを含むことができ、制御回路128と通信結合することができる。例えば、メモリアレイ102は、第1境界110、第2境界112、第3境界114、及び第4境界116を含むことができ、これらの境界は第1パーティション118、第2パーティション120、第3パーティション122、第4パーティション124、及び第5パーティション126を規定することができる。以上に説明したように、こうした境界はウェアレベリングのパラメータに基づいて設定可能であり、これらのパラメータはユーザ指定とすることができる。従って、ユーザはサイズ及び境界をパーティションに関連して規定及び指定することができる。さらに、ウェアレベリングのパラメータは、パーティションを、ウェアレベリングを行う物理的セクターの集合またはプール内に含めること、あるいはウェアレベリングを行う物理的セクターの集合またはプールから除外することを示すこともでき、こうしたことは、制御回路128及びスーパーバーザーのメモリセクター130によって管理することができる。
図2に示すように、メモリアレイ102は均一なサイズのメモリセクターを含むことができる。例えば、メモリアレイ102内のすべての論理的メモリセクターは、同じサイズのものとすることができ、そして固定サイズのパーティション内に含めることができる。この例では、メモリアレイ102内の最初のメモリセクターとすることができる第1メモリセクター104を、メモリアレイ102内の最後のメモリセクターのような他のメモリセクターと同じサイズにすることができる。より具体的には、こうしたメモリセクターは256KBのサイズを有することができる。このようにして、本明細書中に開示する実施形態は、均一なセクターサイズを有するメモリデバイスを利用して実現することができる。
図3に、いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示し、ここではパラメータセクターはウェアレベリングから除外し、他のセクターは固定のパーティションサイズにグループ化している。図3は、メモリアレイ102の最上部及び最下部に小さいメモリセクターが存在するメモリアレイ102の構成の例も示し、メモリアレイ102の中間には大きいメモリセクターがある。以上に説明したように、メモリデバイス300のようなメモリデバイスは、メモリアレイ102のようなメモリアレイを含むことができ、こうしたメモリアレイは、種々の境界によって規定される種々のパーティションを含むことができ、そして制御回路128に通信結合することができる。例えば、メモリアレイ102は、第1境界110、第2境界112、第3境界114、及び第4境界116を含むことができ、これらの境界は第1パーティション118、第2パーティション120、第3パーティション122、第4パーティション124、及び第5パーティション126を規定することができる。種々の実施形態では、第5パーティション126の終端をメモリアレイ102の終端によって規定することができ、メモリアレイ102の終端は第5境界を規定することができる。以上に説明したように、こうしたパーティションは、第1メモリセクター104及び第2メモリセクター106のようなメモリセクターを含むことができ、第1メモリセクター104はメモリアレイ102内の最初のメモリセクター104とすることができ、第2メモリセクターはメモリアレイ102内の最後のメモリセクターとすることができる。さらに、メモリアレイ102はスーパーバイザーのメモリセクター130を含むこともできる。
種々の実施形態では、メモリアレイ102を、固定サイズを有する複数のパーティションを有するように構成することができる。従って、これらのパーティションのサイズは、ハードウェアの製造業者が指定することができ、あるいは、メモリアレイ102のサイズのようなメモリデバイス100のハードウェア上の特徴に基づいて決定することができる。さらに、一部の実施形態では、こうしたパーティションを均一なサイズにすることができる。以上に説明したように、パーティション内に含まれる論理的メモリセクターを含めること及び除外することは、スーパーバーザーのメモリセクター130に記憶されているウェアレベリングのパラメータに基づいて決定することができる。以下に図4及び図5を参照してより詳細に説明するように、こうしたウェアレベリングのパラメータはユーザ指定とすることができ、そしてユーザから通信インタフェース経由で受信することができる。
図4に、いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の例のフローチャートを示す。以上に説明したのと同様に、メモリデバイスを利用して、ウェアレベリングにおいて使用する物理的メモリセクターの集合またはプール内に含めるための、メモリのいくつかの論理セクターをユーザが明示的に選択することを可能にし、さらに、他の論理的メモリセクターをこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にすることができる。以下により詳細に説明するように、このように構成可能なことは、ウェアレベリングを実現する際のフレキシビリティの増加をユーザにもたらすことができる。
方法400は動作402から開始することができ、この動作中には、メモリアレイに関連するパーティション識別子を指定値に設定することができる。図1、図2、及び図3を参照して以上に説明したように、メモリアレイの論理セクターはパーティションとして表現することができる。従って、方法400中に、こうしたパーティションを設定し規定することができる。種々の実施形態では、方法400は、初期パーティションを構成するステップから開始することができ、そして、パーティションを識別する指定値をデフォルト値に設定することによって開始することができ、このデフォルト値は0のようなパーティション番号とすることができる。
方法400は動作404に進むことができ、動作404中には、パーティション境界識別子及びウェアレベリング識別子を生成することができる。種々の実施形態では、パーティション境界識別子は、設定されて規定されているパーティションの境界を識別する1つ以上のデータ値とすることができる。従って、パーティション境界識別子は、アドレスポインタを特徴付けるデータ値、あるいは図1を参照して以上に説明した他の何らかの適切な識別子を含むことができる。このようにして、動作404中には、メモリアレイの論理的メモリ空間内の特定のパーティション用の境界を規定することができる。以上に説明したように、こうした境界識別子はユーザ指定とすることができ、受信したユーザ入力に基づく。より具体的には、パーティション境界識別子及びウェアレベリング識別子は、受信したウェアレベリングのパラメータに基づいて生成することができる。
従って、制御回路のような構成要素は、ウェアレベリングのパラメータを含む受信した入力に基づいて境界識別子を生成することができる。さらに、ウェアレベリング識別子は受信した入力に基づいて生成することもできる。本明細書では、こうしたウェアレベリング識別子をウェアレベリング特性またはウェアレベリング設定値と称することもある。従って、動作404中には、パーティションをウェアレベリングのプール内に含めるべきであるか否かを識別するウェアレベリング識別子を生成することができる。一部の実施形態では、パーティションがウェアレベリングのプール内に含まれる場合に、ウェアレベリング識別子は、さらに、そのパーティションに適用されるウェアレベリングの特徴量または限度を識別することができる。
方法400は動作406に進むことができ、動作406中には、追加的パーティションを生成するべきであるか否かを判定することができる。以上に説明したように、メモリアレイのメモリ空間は複数のパーティションに分割することができ、動作404の種々の反復を実現して、パーティション境界識別子及びウェアレベリング識別子をパーティション毎に生成することができる。追加的パーティションを生成するべきでないものと判定した場合には、方法400を終了する。しかし、追加的パーティションを生成するべきであるものと判定した場合には、方法400は動作408に進むことができる。種々の実施形態では、こうした判定はユーザ入力に基づいて行うことができる。例えば、ユーザは追加的パーティションを生成するべきであることを指定することができ、方法400は動作408に進むことができる。一部の実施形態では、こうした判定は、動作404中に生成したパーティションの境界と、メモリアレイのメモリ空間内の特定アドレスとの比較に基づいて行うこともできる。例えば、動作404中に規定したパーティションの規定した境界がメモリアレイ内の最終アドレスではなく、一部のメモリ空間が未定義のままである場合に、方法400は動作408に進むことができ、上記の規定した境界はアドレスポインタとすることができる。
従って、動作408中には、パーティション識別子をインクリメントする(増加させる)ことができる。このようにして、パーティション識別子を修正または調整して、新たな異なるパーティションを識別することができ、方法400は動作404に戻ることができ、動作404中には、パーティション境界識別子及びウェアレベリング識別子を新たなパーティション用に生成することができる。例えば、前に規定したパーティション識別子が「0」であった場合、このパーティション識別子を「1」にインクリメントし、動作404の他の反復回中に、パーティション境界識別子及びウェアレベリング識別子をパーティション1用に生成することができる。このようにして、多数のパーティションを規定することができ、これらのパーティションに関連するウェアレベリング識別子を規定して、ウェアレベリングの特徴量または限度、あるいはウェアレベリングを全く行わないことを、規定したパーティション毎に指定することもできる。
図5に、いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の他の例のフローチャートを示す。以上に説明したのと同様に、メモリデバイスを利用して、ウェアレベリングにおいて使用する物理的メモリセクターの集合またはプール内に含めるための、メモリのいくつかの論理的セクターをユーザが明示的に選択することを可能にし、さらに、他の論理的メモリセクターをこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にすることができる。さらに、こうした選択は、その後のウェアレベリング動作の基になる論理セクター/物理セクターのマッピングの基礎を形成することができる。このようにして、どの論理セクターにどれだけのウェアレベリングを行うかを設定する能力をユーザに与えることができる。
方法500は動作502から開始することができ、動作502中には複数のパーティション境界識別子及び複数のウェアレベリング識別子を生成することができる。図4を参照して以上に説明したように、パーティション境界識別子及びウェアレベリング識別子は、メモリアレイの論理メモリ空間の種々の異なるパーティションに対して生成することができる。また上述したように、複数個のパーティションがパーティション境界識別子によって規定されるので、こうした識別子は反復的に生成することができ、これらのパーティション境界識別子はアドレスポインタとすることができ、ウェアレベリングの特性は、ウェアレベリング識別子に基づいてパーティション毎に規定される。さらに、こうしたパーティション境界識別子及びウェアレベリング識別子は、ウェアレベリングのパラメータとして受信したユーザ入力に基づいて生成することができる。従って、これらの識別子はユーザ設定可能にすることができ、従って、パーティションのサイズ及び個数、並びにパーティション毎に許容されるウェアレベリングの特徴量のユーザ設定を可能にする。
一部の実施形態では、制御回路のような構成要素が、パーティション境界識別子及びウェアレベリング識別子を1つ以上のデータ構造の形で生成し、記憶し、維持することができる。例えば、制御回路は、論理セクターアドレス−パーティション及びそれに関連するパーティション識別子のマッピングを識別する第1データ構造を生成することができる。さらに、制御回路は、論理セクター及びパーティションを識別して、これらを、フラグまたはビットによって示すことができるように、ウェアレベリングのプール、並びにこれらに関連するウェアレベリングの特性または設定値にマッピングする第2データ構造を生成して記憶することができる。さらに、以下により詳細に説明するように、制御回路は、論理アドレス−物理アドレスのアドレスマッピングを記憶する第3データ構造を生成することもでき、こうしたアドレスマッピングは、少なくとも部分的に複数のパーティション境界識別子及び複数のウェアレベリング識別子に基づいて生成することができる。
方法500は動作504に進むことができ、動作504中には消去コマンドを受信することができる。種々の実施形態では、消去コマンドが論理セクター内に含まれる論理アドレスに関連することができる。従って、こうした消去コマンドは、プロセッサまたはメモリのような構成要素から受信することができ、そしてメモリデバイスの動作中に受信することができる。従って、動作502はメモリデバイスの設定段階中に実現することができ、動作504はその後に、メモリデバイス自体の動作中に発生することができる。
方法500は動作506に進むことができ、動作506中には、消去コマンドに関連する論理アドレスがウェアレベリングのプール内に含まれるか否かを判定することができる。消去コマンドに関連する論理アドレスがウェアレベリングのプール内に含まれないものと判定された場合には、方法500は動作512に進むことができる。しかし、消去コマンドに関連する論理アドレスがウェアレベリングのプール内に含まれるものと判定された場合には、方法500は動作508に進むことができる。種々の実施形態では、こうした判定は、論理アドレスと、動作502を参照して上記に説明したように生成したパーティション境界識別子及びウェアレベリング識別子との比較に基づいて行うことができる。従って、消去コマンドに関連する論理アドレスを、パーティション境界識別子によって指定されるアドレス範囲と比較することができ、そして上記論理アドレスを含むパーティションを識別することができる。さらに、識別したパーティションに基づいてウェアレベリング識別子を検索することができ、そしてウェアレベリングの特性または設定値を識別することができる。例えば、ウェアレベリング識別子は、消去コマンドに関連する論理アドレスを含む識別したパーティションがウェアレベリングのプール内に含まれ、ウェアレベリングを施すべきである可能性があることを示すことができる。
上記論理アドレスがウェアレベリングのプール内に含まれるものと判定された場合には、方法500は動作508に進むことができ、動作508中には、上記論理アドレスに関連する物理セクターにウェアレベリングを施すべきであるか否かを判定することができる。上記論理アドレスに関連する物理セクターにウェアレベリングを施すべきでないものと判定された場合には、方法500は動作512に進むことができる。しかし、上記論理アドレスに関連する物理セクターにウェアレベリングを施すべきであるものと判定された場合には、方法500は動作510に進むことができる。
種々の実施形態では、こうした判定を、上記物理セクターに関連するPEサイクルの回数と指定された閾値との比較に基づいて行うことができる。種々の実施形態では、プロセッサまたは制御回路のような構成要素が、メモリデバイスの動作中に各物理セクターに適用されるPEサイクルの回数を記録しておくことができる。一部の実施形態では、動作504及び506中に識別された物理セクターに関連するPEサイクルのカウント数を検索することができ、そしてこのPEサイクルのカウント数を閾値と比較することができる。種々の実施形態では、閾値をユーザが指定した指定値とすることができる。前に説明したように、ユーザは、パーティション内に含まれるセクターにウェアレベリングを適用する時点を識別するための、当該パーティション用の閾値を指定することができる。さらに、これも以上に説明したように、異なる閾値を利用して、異なる特徴量のウェアレベリングを異なるパーティションに適用することを可能にすることができる。一部の実施形態では、閾値を、製造業者が設定したデフォルト値とすることができる。従って、PEサイクルのカウント数が閾値を超えていないことが判定された場合には、ウェアレベリングを適用するべきでないものと判定することができ、方法500は動作512に進むことができる。さらに、PEサイクルのカウント数が閾値を超えたことを判定した場合には、ウェアレベリングを適用するべきであるものと判定することができ、方法500は動作510に進むことができる。
従って、上記論理アドレスがウェアレベリングのプール内に含まれ、ウェアレベリングを適用するべきであるものと判定した場合には、方法500は動作510に進むことができ、動作510中には1回以上のウェアレベリング動作を実現することができる。種々の実施形態では、こうしたウェアレベリング動作が、上記物理セクターを、ウェアレベリングのプール内の他の物理セクターのうち現在最小回数のPEサイクルを有する物理セクターと交換(スワップ)することを含む。こうした交換(スワッピング)は、以下により詳細に説明するように、物理セクター間のデータの交換を含むことができ、そしてこれらの物理セクターに関連する論理アドレスのマッピングを更新することも含むことができる。このようにして、メモリデバイスの動作中に、メモリデバイス内に含まれる物理セクターについて、ウェアレベリングを施されているものを全部含めて、PEサイクル数を追跡することができ、PEサイクル数の閾値を満足する際にデータを移動させることができる。前に説明したように、こうしたウェアレベリング動作中には、データの物理アドレスを、一般により少数回のPEサイクルが行われている記憶場所に変更して、論理アドレスは同じままである。
従って、動作510中には、論理アドレス−物理アドレスのアドレスマッピングを更新することができる。種々の実施形態では、制御回路が、論理セクター及び/またはパーティション−物理セクターのマッピングを含む第3データ構造を事前に生成しておくことができる。こうしたマッピングは動作502中に生成しておくことができ、識別したウェアレベリングの特性に基づいて生成しておくこともでき、この特性は論理セクターがウェアレベリングのプール内に含まれるか否かを指定する。例えば、論理アドレス及びそれに関連するパーティションが、当該パーティションにウェアレベリングを施すべきであることを示すウェアレベリングの識別子または特性を有する場合には、このパーティション、並びにこのパーティション内に含まれる論理セクターを、ウェアレベリングのプール内に含まれるものとして識別された物理セクターにマッピングする。こうしたマッピングは、論理セクターをランダムに物理セクターに割り当てることができ、あるいはこうした割り当ては順次に発生することができる。同様なマッピングは、ウェアレベリングを施されていないパーティション及び論理セクターについても実現することができる。このようにして、制御回路のような構成要素が、論理アドレス−物理アドレスのマッピングを記憶して維持することができ、こうしたマッピングはユーザが初期に指定したウェアレベリングの特性に従う。
従って、上述したように、こうしたマッピングは1回以上のウェアレベリング動作に基づいて更新することができる。より具体的には、動作502中に生成した論理セクター−物理セクターのマッピングは、メモリが使用中である際にウェアレベリング・プロセスの一部としてデータを移動する毎に更新することができる。このようにして、メモリデバイスは、特定の論理アドレスに関連するデータの物理的記憶場所を正確に追跡することができる。
方法500は動作512に進むことができ、動作512中には消去動作を実現することができる。従って、プロセッサのような構成要素は、
動作504中に識別された論理セクター並びにそれに関連する物理セクターに対する消去動作を実現することができる。ウェアレベリング後に動作512を実現する例では、対応する物理セクターをウェアレベリング中に選択した新たな物理セクターとすることができる。さらに、この物理セクターに関連するカウンタを更新して、この物理セクターに適用されたPEサイクルの回数を正確に識別することができる。
方法500は動作514に進むことができ、動作514中には、メモリデバイスが追加的な消去コマンドを待機するべきであるか否かを判定することができる。一部の実施形態では、こうした追加的な消去コマンドがメモリデバイスの動作中に発生することがある。従って、メモリデバイスが追加的な消去コマンドを待機するべきであるものと判定された場合には、方法500は動作504に戻ることができ、このことはメモリデバイスの使用を継続する場合であり得る。メモリデバイスが追加的な消去コマンドを待機するべきでないものと判定された場合には、方法500を終了することができ、このことは例えばメモリデバイスの使用を中止する場合であり得る。
図6に、いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示す。特定の実施形態によれば、システム600は、メモリデバイス100のような上述した種々の構成要素を実現するのに適し得る。種々の実施形態では、システム600はプロセッサ601を含むことができ、プロセッサ601は1つ以上の処理動作を実現するように構成することができる。例えば、プロセッサ601は、メモリアレイ102に関連するウェアレベリング動作を実現するように構成することができ、さらに、メモリアレイ102に関連する読出し及び書込み動作を実現するように構成することができる。システム600はバス615を含むこともでき、バス615はシステム600の種々の構成要素間の通信を可能にするように構成することができる。
種々の実施形態では、システム600はメモリアレイ102及び制御回路128をさらに含むことができ、これらは以上に説明した設定可能なウェアレベリングを実現するように構成することができる。種々の実施形態では、制御回路128は1つ以上のプロセッサ及び専用メモリを含むことができ、これらは前述したデータ構造及びマッピングの生成を実現するように構成することができる。このようにして、システム600は、制御回路128のような専用の処理装置を有することができ、この処理装置は前述した設定可能なウェアレベリングを実現するように構成することができる。さらに、一部の実施形態では、制御回路128を特定用途向け集積回路(ASIC:application specific integrated circuit)の形で実現することができ、あるいはフィールド・プログラマブル・ゲートアレイの再プログラム可能な論理回路の形で実現することができる。一部の実施形態では、制御回路128を、カリフォルニア州にあるCypress Semiconductor of San Jose社から市販されているプログラマブル・システム・オン・チップまたはPSoC(Programmable System On Chip:登録商標)コントローラのような、不揮発性メモリをさらに含むプログラマブル(プログラム可能)なシステムまたはコントローラの形で実現することができる。種々の実施形態では、システム600の1つ以上の構成要素を同一パッケージ内の同一の回路ダイ上に実現することができる。例えば、制御回路128及びメモリ102を同じ回路ダイ上に実現することができる。一部の実施形態では、これらを異なるパッケージ内の異なるダイ上に実現することができる。
種々の実施形態では、通信インタフェース611を、他のシステム構成要素との間でデータを送受信するように構成することができ、あるいはパケットまたはデータセグメントをネットワーク上で送受信するように構成することができる。例えば、通信インタフェース611は、バス615のようなバスを介して、あるいは通信ネットワーク経由でユーザインタフェース装置と通信結合することができる。以上に説明したように、通信インタフェース611はこうしたユーザインタフェース装置からデータを受信するように構成することができ、こうしたユーザインタフェース装置はデータ処理システムまたはコンピュータシステム内に含めることができる。種々の実施形態では、こうしたデータがユーザからのウェアレベリングのパラメータを識別する入力を含むことができる。種々の実施形態では、通信インタフェース611を、イーサネット(登録商標)インタフェース、フレームリレー・インタフェース、ケーブル・インタフェース、及びDSL(digital subscriber line:デジタル加入者線)インタフェースをサポートする装置とすることができる。それに加えて、高速イーサネット(登録商標)インタフェース、ギガビット・イーサネット(登録商標)インタフェース、HSSI(high-speed serial interface:高速シリアルインタフェース)インタフェース、POS(point-of-sales:販売時点管理)インタフェース、FDDI(fiber distributed data interface:光ファイバ分散データインタフェース)インタフェース、等のような種々の非常に高速なインタフェースを用意することができる。一般に、これらのインタフェースは、適切な媒体との通信に適したポートを含むことができる。一部の場合には、これらは独立したプロセッサを含むこともでき、そして一部の例では揮発性のRAM(random access memory:ランダムアクセスメモリ)を含むこともできる。
以上の概念は明確な理解の目的で幾分詳細に説明してきたが、添付した特許請求の範囲内で特定の変更及び修正を実施することができることは明らかである。なお、上記のプロセス、システム、及びデバイスを実現する多数の代わりの方法が存在する。従って、上記の実施形態は限定的ではなく例示的なものとして考えるべきである。

Claims (20)

  1. 複数の物理的メモリ部分を含む不揮発性メモリと、
    ウェアレベリング制御回路と
    を具えたデバイスであって、
    前記複数の物理的メモリ部分の各々は、複数の論理的メモリ部分のうちの1つの論理的メモリ部分にマッピングされ、
    前記ウェアレベリング制御回路は、複数のウェアレベリングのパラメータを受信するように構成され、さらに、前記受信した複数のウェアレベリングのパラメータに基づいて複数のウェアレベリングの特性を決定するように構成され、該複数のウェアレベリングの特性は、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別するデバイス。
  2. 前記複数のウェアレベリングのパラメータがユーザ指定のパラメータである、請求項1に記載のデバイス。
  3. 前記複数のウェアレベリングのパラメータは、前記不揮発性メモリにおける前記複数のウェアレベリングの特性の各々に割り当てられた部分をさらに識別するように設定されている、請求項1に記載のデバイス。
  4. 前記複数のウェアレベリングの特性が、ウェアレベリングを適用するべきであることを示す第1ウェアレベリング設定値を含み、ウェアレベリングを適用するべきでないことを示す第2ウェアレベリング設定値をさらに含む、請求項1に記載のデバイス。
  5. 前記第1ウェアレベリング設定値が、第1の特徴量のウェアレベリングを適用するべきであることを示し、前記複数のウェアレベリングの特性が、
    第2の特徴量のウェアレベリングを適用するべきであることを示す第3ウェアレベリング設定値と、
    第3の特徴量のウェアレベリングを適用するべきであることを示す第4ウェアレベリング設定値と
    をさらに含む、請求項4に記載のデバイス。
  6. 前記複数のウェアレベリングのパラメータが、前記複数の論理的メモリ部分の各々に関連するプログラム及び消去(PE)サイクルの回数を識別し、前記複数のウェアレベリングの特性が、前記PEサイクルの回数に基づく、前記複数の論理的メモリ部分の各々に適用されるウェアレベリングの特徴量を識別する、請求項1に記載のデバイス。
  7. 前記複数のウェアレベリングのパラメータが、前記不揮発性メモリの複数のパーティションにおける各パーティションの論理的サイズを識別し、前記複数のウェアレベリングの特性が、前記各パーティションの論理的サイズに基づく、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別する、請求項1に記載のデバイス。
  8. 前記複数の論理的メモリ部分が複数の固定サイズのパーティションに区分されている、請求項1に記載のデバイス。
  9. 前記複数の論理的メモリ部分が、前記複数のウェアレベリングのパラメータに基づいて設定されたフレキシブルなサイズのパーティションに区分されている、請求項1に記載のデバイス。
  10. 複数の物理的メモリ部分を含む不揮発性メモリと、
    ウェアレベリング制御回路と、
    前記ウェアレベリング制御回路をデータ処理システムと通信結合するように構成された通信インタフェースと、
    前記不揮発性メモリに関連するプログラム及び消去動作を実行するように構成された1つ以上のプロセッサと
    を具えたシステムであって、
    前記複数の物理的メモリ部分の各々は、複数の論理的メモリ部分のうちの1つの論理的メモリ部分にマッピングされ、
    前記ウェアレベリング制御回路は、複数のウェアレベリングのパラメータを受信するように構成され、さらに、前記受信した複数のウェアレベリングのパラメータに基づいて複数のウェアレベリングの特性を決定するように構成され、該複数のウェアレベリングの特性は、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別するシステム。
  11. 前記複数のウェアレベリングのパラメータがユーザ指定のパラメータである、請求項10に記載のシステム。
  12. 前記複数のウェアレベリングのパラメータは、前記不揮発性メモリにおける前記複数のウェアレベリングの特性の各々に割り当てられた部分をさらに識別する、請求項10に記載のシステム。
  13. 前記複数のウェアレベリングの特性が、ウェアレベリングを適用するべきであることを示す第1ウェアレベリング設定値を含み、ウェアレベリングを適用するべきでないことを示す第2ウェアレベリング設定値をさらに含む、請求項10に記載のシステム。
  14. 前記複数のウェアレベリングのパラメータが、前記複数の論理的メモリ部分の各々に関連するプログラム及び消去(PE)サイクルの回数を識別し、前記複数のウェアレベリングの特性が、前記PEサイクルの回数に基づく、前記複数の論理的メモリ部分の各々に適用されるウェアレベリングの特徴量を識別する、請求項10に記載のシステム。
  15. 前記複数の論理的メモリ部分が、前記複数のウェアレベリングのパラメータに基づいて設定されたフレキシブルなサイズのパーティションに区分され、前記不揮発性メモリ及び前記ウェアレベリング制御回路が同じ回路ダイ上に実装されている、請求項10に記載のシステム。
  16. ウェアレベリング制御回路を用いて、複数の物理的メモリ部分を含む不揮発性メモリの複数のパーティションに関連する複数の論理的アドレス範囲を特徴付けるパーティション境界識別子を生成するステップであって、前記複数の物理的メモリ部分の各々が、複数の論理的メモリ部分のうちの1つの論理的メモリ部分に関連するステップと、
    前記ウェアレベリング制御回路を用いて、前記複数のパーティションに関連するウェアレベリングの特性を含むウェアレベリング識別子を生成するステップであって、該ウェアレベリング識別子は、前記複数の論理的メモリ部分に関連するウェアレベリングの特性を含み、該ウェアレベリングの特性は、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別するステップと、
    前記ウェアレベリング制御回路を用いて、前記複数のウェアレベリング識別子に少なくとも部分的に基づくアドレスマップを生成するステップであって、該アドレスマップは、第1数の前記論理的メモリ部分を、ウェアレベリングに含まれる第1数の前記物理的メモリ部分にマッピングする第1マッピングを特徴付け、前記アドレスマップは、さらに、第2数の前記論理的メモリ部分を、前記ウェアレベリングから除外される第2数の前記物理的メモリ部分にマッピングする第2マッピングを特徴付けるステップと
    を含む方法。
  17. 前記複数のウェアレベリングのパラメータがユーザ指定のパラメータである、請求項16に記載の方法。
  18. 前記複数のウェアレベリング識別子は、前記不揮発性メモリにおける前記複数のウェアレベリングの特性の各々に割り当てられた部分をさらに識別する、請求項16に記載の方法。
  19. 前記複数のウェアレベリングの特性が、ウェアレベリングを適用するべきであることを示す第1ウェアレベリング設定値を含み、ウェアレベリングを適用するべきでないことを示す第2ウェアレベリング設定値をさらに含む、請求項16に記載の方法。
  20. 前記複数のウェアレベリングのパラメータが、前記不揮発性メモリの複数のパーティションにおける各パーティションの論理的サイズを識別し、前記複数のウェアレベリングの特性が、前記各パーティションの論理的サイズに基づく、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別する、請求項16に記載の方法。
JP2019503550A 2016-10-03 2017-08-09 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス Active JP6816253B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662403340P 2016-10-03 2016-10-03
US62/403,340 2016-10-03
US15/388,892 US10489064B2 (en) 2016-10-03 2016-12-22 Systems, methods, and devices for user configurable wear leveling of non-volatile memory
US15/388,892 2016-12-22
PCT/US2017/046142 WO2018067230A1 (en) 2016-10-03 2017-08-09 Systems, methods, and devices for user configurable wear leveling of non-volatile memory

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020213887A Division JP7209684B2 (ja) 2016-10-03 2020-12-23 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス

Publications (3)

Publication Number Publication Date
JP2019533213A true JP2019533213A (ja) 2019-11-14
JP2019533213A5 JP2019533213A5 (ja) 2020-04-09
JP6816253B2 JP6816253B2 (ja) 2021-01-20

Family

ID=61758166

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019503550A Active JP6816253B2 (ja) 2016-10-03 2017-08-09 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス
JP2020213887A Active JP7209684B2 (ja) 2016-10-03 2020-12-23 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020213887A Active JP7209684B2 (ja) 2016-10-03 2020-12-23 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス

Country Status (5)

Country Link
US (2) US10489064B2 (ja)
JP (2) JP6816253B2 (ja)
CN (2) CN109716281B (ja)
DE (1) DE112017005020T5 (ja)
WO (1) WO2018067230A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489064B2 (en) * 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory
US10832753B2 (en) * 2017-07-31 2020-11-10 General Electric Company Components including structures having decoupled load paths
US10198195B1 (en) 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling
US10409716B2 (en) 2017-10-11 2019-09-10 Western Digital Technologies, Inc. Non-volatile memory with adaptive wear leveling
US10656844B2 (en) 2017-10-11 2020-05-19 Western Digital Technologies, Inc. Non-volatile memory with regional and inter-region wear leveling
US11056206B2 (en) * 2017-10-11 2021-07-06 Western Digital Technologies, Inc. Non-volatile memory with dynamic wear leveling group configuration
US10620867B2 (en) * 2018-06-04 2020-04-14 Dell Products, L.P. System and method for performing wear leveling at a non-volatile firmware memory
CN110187999B (zh) * 2019-05-09 2021-04-27 新华三技术有限公司 地址映射数据备份方法及装置
US11314446B2 (en) * 2020-06-25 2022-04-26 Micron Technology, Inc. Accelerated read translation path in memory sub-system
JP2022074450A (ja) * 2020-11-04 2022-05-18 キオクシア株式会社 メモリカード、メモリシステム、及びファイルの断片化解消方法
CN113127377B (zh) * 2021-04-08 2022-11-25 武汉导航与位置服务工业技术研究院有限责任公司 一种非易失存储器件写擦除的磨损均衡方法
DE102021120381A1 (de) 2021-08-05 2023-02-09 Harman Becker Automotive Systems Gmbh Vorrichtung und Verfahren zur Verwaltung eines Speichers
US20230073503A1 (en) * 2021-09-07 2023-03-09 Micron Technology, Inc. Security file system for a memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009503629A (ja) * 2005-06-08 2009-01-29 サンディスク アイエル リミテッド プログラム可能な耐久度を有するフラッシュメモリ
JP2009265912A (ja) * 2008-04-24 2009-11-12 Toshiba Corp メモリシステム
JP2009265192A (ja) * 2008-04-22 2009-11-12 Sharp Corp 帯電装置および画像形成装置
JP2014056408A (ja) * 2012-09-12 2014-03-27 Toshiba Corp メモリシステム、コンピュータシステム、およびメモリ管理方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
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
CN100533409C (zh) * 2005-07-29 2009-08-26 松下电器产业株式会社 存储器控制器,非易失性存储设备,非易失性存储系统,和非易失性存储器地址管理方法
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
US7710777B1 (en) * 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
WO2009100149A1 (en) * 2008-02-10 2009-08-13 Rambus, Inc. Segmentation of flash memory for partial volatile storage
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
FR2933803B1 (fr) * 2008-07-08 2010-09-24 Thales Sa Dispositif et procede de sauvegarde de donnees sur des supports de memoire non volatile, de type flash nand, destines a des calculateurs embarques
US20100199020A1 (en) * 2009-02-04 2010-08-05 Silicon Storage Technology, Inc. Non-volatile memory subsystem and a memory controller therefor
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9104547B2 (en) 2011-08-03 2015-08-11 Micron Technology, Inc. Wear leveling for a memory device
US8832506B2 (en) 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
US8902669B2 (en) 2012-11-08 2014-12-02 SanDisk Technologies, Inc. Flash memory with data retention bias
US9298608B2 (en) * 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
KR20150068747A (ko) * 2013-12-12 2015-06-22 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법
JP2015204073A (ja) * 2014-04-16 2015-11-16 キヤノン株式会社 情報処理装置、情報処理端末、情報処理方法およびプログラム
JP6107802B2 (ja) 2014-12-15 2017-04-05 コニカミノルタ株式会社 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム
US10223028B2 (en) 2014-12-22 2019-03-05 Sandisk Technologies Llc Failed bit count memory analytics
US10255191B2 (en) * 2015-08-13 2019-04-09 Advanced Micro Devices, Inc. Logical memory address regions
CN109358804B (zh) * 2015-09-29 2022-03-29 华为技术有限公司 一种数据处理方法、装置及闪存设备
US10489064B2 (en) * 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009503629A (ja) * 2005-06-08 2009-01-29 サンディスク アイエル リミテッド プログラム可能な耐久度を有するフラッシュメモリ
JP2009265192A (ja) * 2008-04-22 2009-11-12 Sharp Corp 帯電装置および画像形成装置
JP2009265912A (ja) * 2008-04-24 2009-11-12 Toshiba Corp メモリシステム
JP2014056408A (ja) * 2012-09-12 2014-03-27 Toshiba Corp メモリシステム、コンピュータシステム、およびメモリ管理方法

Also Published As

Publication number Publication date
JP6816253B2 (ja) 2021-01-20
CN109716281B (zh) 2022-06-17
US10489064B2 (en) 2019-11-26
US20200192583A1 (en) 2020-06-18
DE112017005020T5 (de) 2019-08-01
CN115064199A (zh) 2022-09-16
CN115064199B (zh) 2023-08-18
CN109716281A (zh) 2019-05-03
US20180095678A1 (en) 2018-04-05
JP2021061028A (ja) 2021-04-15
JP7209684B2 (ja) 2023-01-20
US11256426B2 (en) 2022-02-22
WO2018067230A1 (en) 2018-04-12

Similar Documents

Publication Publication Date Title
JP7209684B2 (ja) 不揮発性メモリのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイス
JP2019533213A5 (ja)
US10445005B2 (en) Memory system and operating method thereof
JP5613260B2 (ja) フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム
EP2758882B1 (en) Adaptive mapping of logical addresses to memory devices in solid state drives
JP2021061028A5 (ja)
US9678676B2 (en) Method for storage devices to achieve low write amplification with low over provision
KR101083673B1 (ko) 반도체 스토리지 시스템 및 그 제어 방법
KR101596652B1 (ko) 비휘발성 메모리에 대한 탄력적인 웨어 관리
CN111344683A (zh) 非易失性存储器装置中的命名空间分配
TWI639085B (zh) 用於多位元記憶體的變型操作次序
US10942679B2 (en) Memory systems and methods that allocate memory banks using striping size and stream identification information contained within directive commands
WO2012161659A1 (en) A memory storage device, and a related zone-based block management and mapping method
KR20110127728A (ko) 메모리 블록 선택
US20140281132A1 (en) Method and system for ram cache coalescing
KR20180123385A (ko) 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
US10776262B2 (en) Memory system and operating method thereof
CN112181274A (zh) 提升存储设备性能稳定性的大块的组织方法及其存储设备
KR101609304B1 (ko) 멀티칩 플래시 저장장치 및 그 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200226

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200226

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201223

R150 Certificate of patent or registration of utility model

Ref document number: 6816253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250