JP2022506259A - メモリ内のデータ再配置 - Google Patents

メモリ内のデータ再配置 Download PDF

Info

Publication number
JP2022506259A
JP2022506259A JP2021523480A JP2021523480A JP2022506259A JP 2022506259 A JP2022506259 A JP 2022506259A JP 2021523480 A JP2021523480 A JP 2021523480A JP 2021523480 A JP2021523480 A JP 2021523480A JP 2022506259 A JP2022506259 A JP 2022506259A
Authority
JP
Japan
Prior art keywords
physical
memory
data
units
unit
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
Application number
JP2021523480A
Other languages
English (en)
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 JP2022506259A publication Critical patent/JP2022506259A/ja
Pending legal-status Critical Current

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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本開示は、メモリ内でデータ再配置を行うための装置、方法、及びシステムを含む。実施形態は、コントローラと、メモリセルの複数の物理ユニットを有するメモリとを含む。物理ユニットのそれぞれには、異なるシーケンシャル物理アドレスが対応付けられており、第1のいくつかの物理ユニットはデータを記憶しており、第2のいくつかの物理ユニットはデータを記憶しておらず、第2のいくつかの物理ユニットのそれぞれに対応付けられた物理アドレスは、シーケンス内の異なる連続物理アドレスである。コントローラは、第2のいくつかの物理ユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前にあるシーケンス内物理アドレスを有する、第1のいくつかの物理ユニットのうちの物理ユニットに記憶されているデータを、第2のいくつかの物理ユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスに再配置し得る。

Description

本開示は、概して半導体メモリ及び方法に関し、より具体的にはメモリ内のデータ再配置に関する。
メモリデバイスは、通常、コンピュータまたは他の電子デバイスに、内部の半導体集積回路として、及び/または外部の取り外し可能なデバイスとして提供される。揮発性メモリ及び不揮発性メモリを含む多数の異なるタイプのメモリが存在する。揮発性メモリは、データを保持するために電力を要し得、揮発性メモリには、数ある中でも、ランダムアクセスメモリ(RAM)、動的ランダムアクセスメモリ(DRAM)、及び同期式動的ランダムアクセスメモリ(SDRAM)が含まれ得る。不揮発性メモリは、電力供給のない時も記憶データを保持することで永続的にデータを提供することができ、不揮発性メモリには、数ある中でも、NANDフラッシュメモリ、NORフラッシュメモリ、読み出し専用メモリ(ROM)、並びに、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、及び磁気ランダムアクセスメモリ(MRAM)などの抵抗可変メモリが含まれ得る。
メモリデバイスを一緒に組み合わせて、ソリッドステートドライブ(SSD)、組み込みマルチメディアカード(e.MMC)、及び/またはユニバーサルフラッシュストレージ(UFS)デバイスが形成され得る。SSD、e.MMC、及び/またはUFSデバイスは、様々なタイプの不揮発性メモリ及び揮発性メモリの中でも、不揮発性メモリ(例えばNANDフラッシュメモリ及び/またはNORフラッシュメモリ)を含み得、且つ/または揮発性メモリ(例えばDRAM及び/またはSDRAM)を含み得る。不揮発性メモリは、数ある中でも、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、携帯電話、MP3プレイヤーなどのポータブルミュージックプレーヤ、ムービープレーヤといった幅広い電子用途で使用され得る。
フラッシュメモリデバイスは、例えば、フローティングゲートなどの電荷貯蔵構造にデータを記憶するメモリセルを含み得る。フラッシュメモリデバイスは通常、高い記憶密度、高い信頼性、及び低消費電力を可能にする1トランジスタメモリセルを使用する。抵抗可変メモリデバイスは、記憶素子(例えば可変抵抗を有する抵抗メモリ素子)の抵抗状態に基づいてデータを記憶することができる抵抗メモリセルを含み得る。
メモリセルはアレイに配置でき、アレイアーキテクチャのメモリセルは、標的状態(例えば所望の状態)にプログラムすることができる。例えば、フラッシュメモリセルの電荷貯蔵構造(例えばフローティングゲート)に電荷をかけて、または電荷貯蔵構造から電荷を除去して、セルを特定のデータ状態にプログラムすることができる。セルの電荷貯蔵構造に貯蔵された電荷は、セルの閾値電圧(Vt)を示し得る。フラッシュメモリセルの状態は、セルの電荷貯蔵構造に貯蔵された電荷(例えばVt)を検知することにより特定され得る。
追加例として、抵抗メモリセルは、抵抗メモリ素子の抵抗レベルを変化させることにより、標的データ状態に対応するデータを記憶するようにプログラムすることができる。セルに対し(例えばセルの抵抗メモリ素子に対し)、特定の期間、正または負の電気パルス(例えば正または負の電圧または電流パルス)などの電界またはエネルギーのソースを印加することにより、抵抗メモリセルを標的データ状態(例えば特定の抵抗状態に対応する標的データ状態)にプログラムすることができる。抵抗メモリセルの状態は、印加された呼掛け電圧(interrogation voltage)に応答してセルを流れる電流を検知することにより、特定され得る。検知電流は、セルの抵抗レベルに基づいて変化し、セルの状態を示し得る。
シングルレベルメモリセル(SLC)は、2つの異なるデータ状態のうちの1つの標的データ状態にプログラムでき、これらは、2進単位の1または0により表され得る。いくつかのフラッシュメモリセル及び抵抗メモリセルは、3つ以上のデータ状態(例えば1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110、及び1110)のうちの1つの標的データ状態にプログラムできる。このようなセルは、マルチステートメモリセル、マルチユニットセル、またはマルチレベルセル(MLC)と称され得る。MLCは、各セルが2桁以上(例えば2ビット以上)を表し得るため、メモリセルの数を増やすことなく、より高密度のメモリを提供することができる。
本開示の実施形態による、いくつかの物理ブロックを有するメモリアレイの一部の図を示す。 本開示の実施形態による、ホストと、メモリデバイスの形態の装置とを含むコンピューティングシステムのブロック図である。 本開示の実施形態による、メモリセルの複数の物理ユニットを含むメモリセルのグループの概念例を示す。 本開示の実施形態によるメモリで行われる一連のデータ再配置動作の概念例を示す。 本開示の実施形態による、メモリ内のデータ再配置先である物理的位置を識別するための代数マッピングの方法を示す。
本開示は、メモリ内でデータ再配置を行うための装置、方法、及びシステムを含む。実施形態は、コントローラと、メモリセルの複数の物理ユニットを有するメモリとを含む。物理ユニットのそれぞれには、異なるシーケンシャル物理アドレスが対応付けられており、第1のいくつかの物理ユニットはデータを記憶しており、第2のいくつかの物理ユニットはデータを記憶しておらず、第2のいくつかの物理ユニットのそれぞれに対応付けられた物理アドレスは、シーケンス内の異なる連続物理アドレスである。コントローラは、第2のいくつかの物理ユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前にあるシーケンス内物理アドレスを有する、第1のいくつかの物理ユニットのうちの物理ユニットに記憶されているデータを、第2のいくつかの物理ユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスに再配置し得る。
ウェアレベリング動作(例えばスキーム)は、プログラム(例えば書き込み)動作により生じ得るメモリセルの摩耗を、メモリにわたりより均一に分散させるために、メモリの1つの物理的位置に現在記憶されているデータを、メモリの別の物理的位置に再配置する動作を含み得る、及び/または指し得る。ウェアレベリング動作を行うことにより、メモリの性能が向上し得(例えば速度が上がり、信頼性が高まり、及び/または消費電力が減少し得)、及び/またはメモリの耐久性(例えば寿命)が高められ得る。
従来のウェアレベリング動作は、テーブルを使用してメモリ内のデータを再配置し得る。しかしながら、このようなテーブルは、大きくなり得(例えば大量のメモリ領域を使用し得)、複雑であり得(例えば大量のリソースを使用し得)、ウェアレベリング動作を遅くし得る(例えばメモリに遅延を生じさせ得る)。
対照的に、本開示によるデータ再配置動作(例えばウェアレベリング動作)は、代数マッピング(例えば論理アドレスと物理アドレスとの代数マッピング)を維持して、データ再配置先である物理的位置を識別するのに使用し得る。従って、本開示によるデータ再配置動作は、従来のウェアレベリング動作と比べて、より少ないメモリ領域を使用し得、より少ないリソースを使用し得、より速くなり得る。さらに、本開示によるデータ再配置動作は、従来のウェアレベリング動作と比べて、メモリの性能及び/または耐久性が(例えば理論上最大値近くまで)大幅に向上し得る。
さらに、現在の作業負荷に対する摩耗をメモリ全体で調和させ、メモリの現在のニーズに合わせてメモリの耐久性を向上または低下させ、メモリを摩滅させる特定の作業負荷に関して耐久性要件を満たし、及び/または様々なタイプのメモリにウェアレベリングを適応させるために、本開示によるデータ再配置動作は、柔軟及び/または変更可能(例えば調整可能)であり得る。対照的に、従来のウェアレベリング動作には、このような柔軟性は存在し得ない。さらに、本開示によるデータ再配置動作は、メモリの早期障害を引き起こすことを意図した標的メモリセルに対する異常な作業負荷及び/または攻撃を、防御することができる。
さらに、従来のウェアレベリング動作は、ハードウェアでは実施不可能であり得る。対照的に、本開示によるデータ再配置動作(例えばウェアレベリング動作)は、ハードウェアで実施可能であり得る。例えば、本開示によるデータ再配置動作は、メモリのコントローラにおいて、完全にハードウェアで、またはハードウェア及びソフトウェアの組み合わせで、実施可能であり得る。従って、本開示によるデータ再配置動作は、メモリの待ち時間に影響を与えないことがあり得、メモリに追加のオーバーヘッドを加えないことがあり得る。
本明細書で使用される「a」、「an」、または「いくつかの(a number of)」は、1つ以上のものを指し得、「複数の(a plurality of)」は、2つ以上のものを指し得る。例えば、メモリデバイス(a memory device)は、1つ以上のメモリデバイスを指し得、複数のメモリデバイスは、2つ以上のメモリデバイスを指し得る。さらに、特に図面の参照番号に関して本明細書で使用される指示子「R」、「B」、「S」、及び「N」は、指示子により指定されたいくつかの特定の特徴が、本開示のいくつかの実施形態に含まれ得ることを示す。
本明細書の図は、最初の一桁または複数桁が図面の図番号に対応し、残りの桁が図面の要素または構成要素を識別する番号付け規則に従う。異なる図面間の類似の要素または構成要素は、類似の数字を使用することで識別され得る。例えば、101は図1の要素「01」を指し得、類似の要素が図2では201と称され得る。
図1は、本開示の実施形態による、いくつかの物理ブロックを有するメモリアレイ101の一部の図を示す。メモリアレイ101は、例えば、NANDフラッシュメモリアレイであり得る。追加例として、メモリアレイ101は、数ある中でも、例えば三次元クロスポイント(3D XPoint)メモリアレイなどのストレージクラスメモリ(SCM)アレイ、強誘電性RAM(FRAM)アレイ、またはPCRAM、RRAM、もしくはスピントルクトランスファ(STT)アレイなどの抵抗可変メモリアレイであり得る。さらに、図1には示されていないが、メモリアレイ101は、メモリアレイ101の動作に関連する様々な周辺回路と一緒に、特定の半導体ダイ上に配置され得る。
図1に示されるように、メモリアレイ101は、メモリセルのいくつかの物理ブロック107-0(ブロック0)、107-1(ブロック1)、...、107-B(ブロックB)を有する。メモリセルは、単一のレベルセル、及び/または、例えば2レベルセル、3レベルセル(TLC)、もしくは4レベルセル(QLC)などのマルチレベルセルであり得る。例として、メモリアレイ101内の物理ブロックの数は、128ブロック、512ブロック、または1,024ブロックであり得るが、実施形態では、メモリアレイ101内の物理ブロックの数は、特定の2の指数またはいずれの特定の数に限定されない。
メモリセルのいくつかの物理ブロック(例えばブロック107-0、107-1、...、107-B)は、メモリセルの平面に含まれ得、メモリセルのいくつかの平面は、ダイ上に含まれ得る。例えば、図1に示される例では、各物理ブロック107-0、107-1、...、107-Bは、単一のダイの一部であり得る。すなわち、図1に示されるメモリアレイ101の一部は、メモリセルのダイであり得る。
図1に示されるように、各物理ブロック107-0、107-1、...、107-Bは、アクセスライン(例えばワードライン)に接続されたメモリセルのいくつかの物理行(例えば103-0、103-1、...、103-R)を含む。各物理ブロックの行(例えばワードライン)の数は32であり得るが、実施形態では、物理ブロック毎の行103-0、103-1、...、103-Rの数は、特定数に限定されない。さらに、図1には示されていないが、メモリセルは、センスライン(例えばデータライン及び/またはデジットライン)に接続され得る。
当業者が認識するように、各行103-0、103-1、...、103-Rは、メモリセルのいくつかのページ(例えば物理ページ)を含み得る。物理ページは、プログラミング及び/または検知の単位(例えば機能グループとして一緒にプログラム及び/または検知されるいくつかのメモリセル)を指す。図1に示される実施形態では、各行103-0、103-1、...、103-Rは、メモリセルの1つの物理ページを含む。しかしながら、本開示の実施形態は、このように限定されない。例えば、実施形態では、各行は、メモリセルの複数の物理ページ(例えば偶数のビットラインに接続されたメモリセルの1つ以上の偶数ページと、奇数のビットラインに接続されたメモリセルの1つ以上の奇数ページ)を含み得る。さらに、マルチレベルセルを含む実施形態の場合、メモリセルの物理ページは、データの複数のページ(例えば論理ページ)を記憶し得る(例えばデータの上位ページ及びデータの下位ページを記憶し得、物理ページ内の各セルは、データの上位ページに対する1つ以上のビットと、データの下位ページに対する1つ以上のビットとを記憶する)。
図1に示されるように、メモリセルのページは、いくつかの物理セクタ105-0、105-1、...、105-S(例えばメモリセルのサブセット)を含み得る。セルの各物理セクタ105-0、105-1、...、105-Sは、データのいくつかの論理セクタを記憶し得る。さらに、データの各論理セクタは、データの特定のページの一部に対応し得る。例として、特定の物理セクタに記憶されたデータの第1の論理セクタは、データの第1のページに対応する論理セクタに該当し得、特定の物理セクタに記憶されたデータの第2の論理セクタは、データの第2のページに対応し得る。各物理セクタ105-0、105-1、...、105-Sは、システムデータ及び/またはユーザデータを記憶し得、及び/またはエラー訂正コード(ECC)データ、論理ブロックアドレス(LBA)データ、及びメタデータなどのオーバーヘッドデータを含み得る。
論理ブロックアドレス指定は、データの論理セクタを識別するためにホストにより使用され得るスキームである。例えば、各論理セクタは、一意的な論理ブロックアドレス(LBA)に対応し得る。さらに、LBAはまた、メモリのデータのその論理セクタの物理的位置を示し得る物理ブロックアドレス(PBA)などの物理アドレスに対応し得る(例えば動的にマッピングされ得る)。データの論理セクタは、いくつかのバイト(例えば256バイト、512バイト、1,024バイト、または4,096バイト)のデータであり得る。しかしながら、実施形態は、これらの例に限定されない。
物理ブロック107-0、107-1、...、107-B、行103-0、103-1、...、103-R、セクタ105-0、105-1、...、105-S、及びページに関して、他の構成も可能であることに留意されたい。例えば、物理ブロック107-0、107-1、...、107-Bの行103-0、103-1、...、103-Rは、それぞれ、例えば512バイトよりも多いまたは少ないデータを含み得る単一の論理セクタに対応するデータを記憶し得る。
図2は、本開示の実施形態による、ホスト202と、メモリデバイス206の形態の装置とを含むコンピューティングシステム200のブロック図である。本明細書で使用される「装置」は、例えば回路もしくは複数の回路、ダイもしくは複数のダイ、モジュールもしくは複数のモジュール、デバイスもしくは複数のデバイス、またはシステムもしくは複数のシステムなどの様々な構造または構造の組み合わせのうちのいずれかを指し得るが、これらに限定されない。さらに、実施形態では、コンピューティングシステム200は、メモリデバイス206に類似するいくつかのメモリデバイスを含み得る。
図2に示される実施形態では、メモリデバイス206は、いくつかのメモリアレイ201-1、201-2、...、201-Nを有するメモリ216を含み得る。メモリアレイ201-1、201-2、...、201-Nは、図1に関連して前述されたメモリアレイ101に類似し得る。例えば、メモリアレイ201-1、201-2、...、201-Nは、NANDフラッシュメモリアレイ及び/またはSCMアレイであり得る。
メモリアレイ201-1、201-2、...、201-Nは、メモリセルのいくつかのグループ(例えばゾーンまたは領域)を含み得る(例えば分割され得る)。各グループは、例えば図1に関連して前述されたメモリアレイ101と同様に、メモリセルの複数の物理ページ及び/またはブロックなどのメモリセルの複数の物理ユニットを含み得る。メモリセルの物理ユニット(例えば物理ページまたはブロック)は、図1に関連して前述されたように、プログラミング及び/または検知の単位(例えば機能グループとして一緒にプログラム及び/または検知されるいくつかのメモリセル)を指し得る。
メモリセルの各グループの物理ユニットのそれぞれには、異なるシーケンシャル物理アドレス(例えば物理アドレスのシーケンスにおける異なる物理アドレス)が対応付けられ得る。各グループの第1のいくつかの物理ユニットは、記憶データ(例えばユーザデータ)を有し得、各グループのこれらの第1のいくつかの物理ユニットにはそれぞれ、異なるシーケンシャル論理アドレス(例えば論理アドレスのシーケンスにおける異なる論理アドレス)が対応付けられ得る。各グループの第2のいくつかの(例えば残りの)物理ユニットは、記憶データまたは対応付けられたシーケンシャル論理アドレスを有し得ず、各グループの第2のいくつかの物理ユニットのそれぞれに対応付けられた物理アドレスは、シーケンス内の異なる連続物理アドレスであり得る。各グループの第1のいくつかの物理ユニットは、そのグループのユーザユニットと本明細書では称され得、各グループの第2のいくつかの物理ユニットは、そのグループのスペアユニットと本明細書では称され得る。メモリセルのグループのユーザユニット及びスペアユニットを示す例が、本明細書でさらに説明される(例えば図3に関連して)。
実施形態では、メモリセルの各グループの物理ユニットのそれぞれは、同一サイズを有し得る。例えば、各グループの物理ユニットのそれぞれは、同じ数のメモリセルを有し得、及び/または同じ量のデータを記憶することが可能であり得る。さらに、各グループのユーザユニットの数及びスペアユニットの数の最大公約数が1となるように、メモリセルの各グループのスペアユニットは、素数の個数の物理ユニットを含み得る(例えば各グループのスペアユニットの数は素数であり得る)。本明細書でさらに説明されるように、各グループのユーザユニットの数とスペアユニットの数とのこのような素数関係により、グループのスペアユニットがグループを通して移動する(例えばスライドする)時にグループのスペアユニットの変動を防ぐことができる。
図2に示されるように、ホスト202は、インターフェース204を介してメモリデバイス206に接続され得る。ホスト202及びメモリデバイス206は、インターフェース204を介して通信し得る(例えばコマンド及び/またはデータを送信し得る)。ホスト202は、数あるホストシステムの中でも、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録及び再生デバイス、携帯電話、PDA、メモリカードリーダ、またはインターフェースハブであり得、メモリアクセスデバイス(例えばプロセッサ)を含み得る。「プロセッサ」は、並列処理システム、いくつかのコプロセッサなどの1つ以上のプロセッサを意図し得ることを、当業者は理解するであろう。
インターフェース204は、標準化された物理インターフェースの形態であり得る。例えば、メモリデバイス206がコンピューティングシステム200の情報ストレージに使用される場合、インターフェース204は、数ある物理コネクタ及び/または物理インターフェースの中でも、シリアルアドバンスドテクノロジアタッチメント(SATA)物理インターフェース、周辺機器相互接続エクスプレス(PCIe)物理インターフェース、ユニバーサルシリアルバス(USB)物理インターフェース、または小型コンピュータシステムインターフェース(SCSI)であり得る。しかしながら、一般に、インターフェース204は、インターフェース204と互換性のあるレセプタを有するメモリデバイス206とホスト(例えばホスト202)との間で、制御信号、アドレス信号、情報信号(例えばデータ)、及び他の信号を渡すインターフェースを提供し得る。
メモリデバイス206は、ホスト202及びメモリ216(例えばメモリアレイ201-1、201-2、...、201-N)と通信するためのコントローラ208を含む。例えば、コントローラ208は、数ある動作の中でも、データの検知(例えば読み出し)、データのプログラム(例えば書き込み)、データの移動、及び/またはデータの消去を行う動作を含む動作を、メモリアレイ201-1、201-2、...、201-Nに対し実行するコマンドを送信し得る。
コントローラ208は、メモリ216と同じ物理デバイス(例えば同じダイ)上に含まれ得る。あるいは、コントローラ208は、メモリ216を含む物理デバイスに通信可能に接続された別個の物理デバイス上に含まれ得る。実施形態では、コントローラ208の構成要素は、分散コントローラとして、複数の物理デバイスにわたり分散され得る(例えばメモリと同じダイ上のいくつかの構成要素、及び異なるダイ、モジュール、または基板上のいくつかの構成要素となり得る)。
ホスト202は、メモリデバイス206と通信するためのホストコントローラ(図2に図示せず)を含み得る。ホストコントローラは、インターフェース204を介してメモリデバイス206にコマンドを送信し得る。ホストコントローラは、メモリデバイス206及び/またはメモリデバイス206上のコントローラ208と通信して、数ある動作の中でも、データ読み出し、データ書き込み、及び/またはデータ消去を行い得る。
メモリデバイス206のコントローラ208及び/またはホスト202のホストコントローラは、制御回路及び/または論理回路(例えばハードウェア及びファームウェア)を含み得る。実施形態では、メモリデバイス206のコントローラ208及び/またはホスト202のホストコントローラは、物理インターフェースを含むプリント回路基板に接続された特定用途向け集積回路(ASIC)であり得る。また、メモリデバイス206及び/またはホスト202は、揮発性メモリ及び/または不揮発性メモリのバッファと、いくつかのレジスタとを含み得る。
例えば、図2に示されるように、メモリデバイスは、回路210を含み得る。図2に示される実施形態では、回路210は、コントローラ208に含まれる。しかしながら、本開示の実施形態は、このように限定されない。例えば、実施形態では、回路210は、(例えばコントローラ208の代わりに)メモリ216に(例えば同じダイ上に)含まれ得る。回路210は、例えばハードウェア及び/またはソフトウェアを備え得る。
回路210は、本開示に従って、メモリアレイ201-1、201-2、...、201-Nに記憶されているデータを再配置するウェアレベリング動作を実行し得る(例えばルックアップテーブルまたはアドレス変換テーブルなどのテーブルを使用せずに)。例えば、回路210は、メモリセルのグループに関して、そのグループのスペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前(例えば目の前)にある物理アドレスシーケンス内の物理アドレスを有する、そのグループのユーザユニットの物理ユニットに記憶されているデータを、そのグループのスペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスに再配置し得る(例えばデータは、シーケンス内の最初のスペアユニットの直前にあるユーザユニットから、シーケンス内の最後のスペアユニットに再配置される)。すなわち、データ再配置元である物理ユニットに対応付けられた物理アドレスは、スペアユニットに対応付けられたシーケンシャル物理アドレスのうちの最初の物理アドレスの直前にあり、データ再配置先である物理ユニットに対応付けられた物理アドレスは、スペアユニットに対応付けられたシーケンシャル物理アドレスのうちの最後の物理アドレスである。このようなデータ再配置の結果、データ再配置元であるユーザユニットは、スペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスを有するスペアユニットとなり、スペアユニットに対応付けられた連続物理アドレスのうちの最後から2番目の物理アドレスを有するスペアユニットは、スペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスを有するスペアユニットとなり得る(例えばデータ再配置元であるユーザユニットは、シーケンス内の最初のスペアユニットとなり、シーケンス内の最後から2番目のスペアユニットは、シーケンス内の最後のスペアユニットとなる)。このようなデータ再配置動作を示す例が、本明細書でさらに説明される(例えば図4に関連して)。
実施形態では、回路210は、トリガーイベントに応じて、データを再配置するこのようなウェアレベリング動作を実行し得る。トリガーイベントは、例えば、メモリ216で行われている(例えば実行されている)プログラム動作の特定数であり得る。例えば、図2に示されるように、回路210は、メモリ216で実行されているプログラム動作の数をカウントし、実行されているプログラム動作の特定数に応じて、データ再配置を開始するための信号を送信することができるカウンタ212(例えば書き込み間隔カウンタ)を含み得る。次に、回路210は、カウンタ212からの開始信号に応じてデータ再配置動作を実行し得、データが再配置されると、カウンタ212はゼロにリセットされ得る。データ再配置をトリガーし得るプログラム動作の特定数は、グループの物理ユニットの総数(例えばユーザユニットとスペアユニットの合計)及びメモリ216の理論上最大耐久性に基づいて、選択され得る。例えば、グループの物理ユニットの総数が、メモリ216の理論上最大耐久性をプログラム動作の特定数で割ったものよりもはるかに少なくなるように、プログラム動作の特定数は選択され得る。
さらに、図2に示されるように、回路210は、レジスタ214を含み得る。レジスタ214は、シーケンス内の物理アドレスのうち最初の物理アドレスである物理アドレスシーケンス内の物理アドレスを有するグループのユーザユニットに対応付けられた論理アドレス(例えば論理アドレスを示す値)を記憶し得る(例えばユーザユニットの論理開始位置)。グループのスペアユニットがグループ全体を通して移動すると、レジスタ214は、1つの要素分インクリメントされ得る。
明確にするために、そして本開示の実施形態を曖昧にしないために、図2にでは示されていないが、メモリアレイ201-1、201-2、...、201-Nがメモリセルの複数のグループを含む(例えば複数のグループに分割される)実施形態では、コントローラ208は、グループごとに、回路210に類似する追加の(例えば別個の)回路を含み得、これは、本開示に従って各自のグループに対しウェアレベリング動作を実行し得る。例えば、コントローラ208は、グループごとに別個の回路を含み得、これは、回路210に関して説明されたのと同様の方法で、各自のグループに対して、そのグループのスペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前にある物理アドレスシーケンス内の物理アドレスを有する、そのグループのユーザユニットの物理ユニットに記憶されているデータを、そのグループのスペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスに再配置し得る。
このような方法で(例えば各グループが自身の別個の対応ウェアレベリング回路を有するように)メモリアレイ201-1、201-2、...、201-Nを複数のグループに分割することにより、グループあたりのユーザユニットの数を削減することができる。グループあたりのユーザユニットの数を減らすことにより、各グループのスペアユニットがメモリアレイ201-1、201-2、...、201-Nを通して循環する及び/または移動する頻度を増やすことができ、これにより、メモリ216の耐久性を、理論上最大値近くまで高めることができる。さらに、ゾーンスワップを実行することにより、メモリ216にわたる摩耗を均一化することができる。例えば、回路は、メモリ216の「ホット」ゾーン(例えばプログラム動作及び/または検知動作中に高頻度でデータがアクセスされているゾーン)を、メモリ216の「コールド」ゾーン(例えばプログラム動作及び/または検知動作中に低頻度でデータがアクセスされているゾーン)とスワップし得、これは、「ホット」ゾーンに関して特定の摩耗閾値を設定して(例えば拡張ベースアドレスカウンタを使用して)、あるゾーンのスペアユニットが当該ゾーンの全物理ユニットを通して循環する及び/または移動する回数を追跡することにより行われ得る。
実施形態では、回路210は、データが記憶されていないグループの物理ユニットの数(例えば数量)を変更(例えば調整)し得る(例えばグループのスペアユニットの数を変更し得る)。例えば、回路210は、グループのスペアユニットの数を増やして、メモリ216(例えばメモリ216のメモリセル)の耐久性(例えば寿命)を高め得る、またはグループのスペアユニットの数を減らして、より多くのユーザデータをメモリ216に記憶し得る(例えば記憶するためのスペースを作り得る)。グループのスペアユニットの数は、データがグループ内に再配置される前または再配置された後に、変更することができる。
グループのスペアユニットの数は、例えばメモリ216(例えばメモリ216のメモリセル)の平均耐久性(例えば寿命)に基づいて変更され得る。例えば、スペアユニットの数は、メモリ216の平均耐久性と一致するように調整され得る。追加例として、グループのスペアユニットの数は、メモリ216の作業負荷に基づいて変更され得る。例えば、スペアユニットの数は、メモリ216で実行されている、または実行される予定の特定の作業負荷の耐久性要件を満たすように調整され得る。追加例として、グループのスペアユニットの数は、メモリ216のタイプ(例えばNANDフラッシュ、SCMなど)に基づいて変更され得る。例えば、スペアユニットの数は、メモリ216のタイプに対する書き込み耐久性パラメータに基づいて調整され得る。
データが再配置されると、回路210は、代数マッピングを使用して、データ再配置先であるメモリ216内の物理的位置を識別することができる。例えば、回路210は、代数マッピング(例えば論理対物理代数マッピング)を使用して、データ再配置先であるスペアユニットに対応付けられたシーケンス内の物理アドレスを識別する(例えば計算する)ことができる。例えば、回路210は、再配置されたデータを検知する動作中に(例えばその再配置されたデータを読み出す要求をホスト202から受信した際)、代数マッピングを使用して、データ再配置先であるスペアユニットに対応付けられたシーケンス内の物理アドレスを識別することができる。このような代数マッピングは、本明細書でさらに説明される(例えば図5に関連して)。
さらに、実施形態では、データが再配置されると、回路210は、ユーザユニットに対応付けられる論理アドレスをランダム化し得る。回路210は、例えばFeistelネットワーク、ランダム可逆バイナリマトリックス、または固定アドレスビットスクランブリングを利用する静的アドレスランダマイザを使用して、論理アドレスを中間アドレスにランダムにマッピングすることにより、ユーザユニットに対応付けられる論理アドレスをランダム化し得る。ユーザユニットに対応付けられる論理アドレスをランダム化することにより、(例えば空間的に離れた)大量に書き込まれた(例えばホット)ユーザユニットの空間相関を軽減することができ(さもなければ互いに空間的に近くなる傾向がある)、これにより、メモリ216の耐久性を論理上最大値近くまで高めることができる。
回路210は、メモリ216の寿命を通してメモリアレイ201-1、201-2、...、201-Nに記憶されているデータをさらに再配置する追加の(例えば後続の)ウェアレベリング動作を実行し得る。例えば、回路210は、追加の(例えば後続の)トリガーイベントに応じてデータを再配置する追加の(例えば後続の)動作を行い得る。
例えば、本明細書で前述された例示的な動作の後に実行されるメモリ内のデータ再配置動作では、回路210は、前回の再配置動作のデータ再配置元であるユーザユニットに対応付けられた物理アドレスの直前にある(例えばシーケンス内でスペアユニットのうちの最初のスペアユニットに現在なっているユニットの直前にある)物理アドレスシーケンス内の物理アドレスを有する、ユーザユニットのうちの物理ユニットに記憶されているデータを、スペアユニットに対応付けられた連続物理アドレスのうちの前回最後から2番目であったスペアユニットの物理アドレスに(例えばシーケンス内でスペアユニットのうちの最後のユニットに現在なっているスペアユニットに)、再配置し得る。再度、このようなデータ再配置の結果、データ再配置元であるユーザユニットは、スペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスを有するスペアユニットとなり、スペアユニットに対応付けられた連続物理アドレスのうちの最後から2番目の物理アドレスを有するスペアユニットは、スペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスを有するスペアユニットとなり得、後続のデータ再配置動作が同様の方法で引き続き実行され得る。このような一連の後続のデータ再配置動作を示す例が、本明細書でさらに説明される(例えば図4に関連して)。
図2に示される実施形態は、本開示の実施形態を不明瞭にしないように図示されていない追加の回路、論理回路、及び/または構成要素を含み得る。例えば、メモリデバイス206は、I/O回路を介してI/Oコネクタにより提供されるアドレス信号をラッチするアドレス回路を含み得る。アドレス信号は、メモリアレイ201-1、201-2、...、201-Nにアクセスするために、行デコーダ及び列デコーダにより受信及び復号化され得る。さらに、メモリデバイス206は、メモリアレイ201-1、201-2、...、201-Nとは別個に、及び/またはメモリアレイ201-1、201-2、...、201-Nに加えて、例えばDRAMまたはSDRAMなどのメインメモリを含み得る。
図3は、本開示の実施形態による、メモリセルの複数の物理ユニットを含む(例えばメモリセルの複数の物理ユニットに分割される)メモリセルのグループの概念例320を示す。図3に示される例では、グループには13個の物理ユニット(例えば物理ユニット322-0~322-12)が含まれる。しかしながら、本開示の実施形態は、グループあたりの物理ユニットの数は、特定数に限定されない。物理ユニットは、例えば、本明細書で前述されたように、プログラミング及び/または検知の単位であり得、それぞれの物理ユニットは、本明細書で前述されたように、同一のサイズを有し得る。
図3に示されるように、各物理ユニット322-0~322-12には、異なるシーケンシャル物理アドレスが対応付けられている。それぞれの物理ユニットの物理アドレスは、その物理ユニットの括弧内の番号として図3に示される(例えば表される)。例えば、図3に示される例では、物理ユニット322-0の物理アドレスは0、物理ユニット322-1の物理アドレスは1というように、物理ユニット322-12の物理アドレスが12になるまで、物理アドレスのシーケンスは0~12まで続く。
図3に示される例では、物理ユニット322-0~322-9は、データ(例えばユーザデータ)を記憶している。これらの物理ユニットは、まとめてユーザユニット324-1と称され得る。図3に示される例では、グループには10個のユーザユニットが含まれるが、本開示の実施形態では、グループあたりのユーザユニットの数は特定数に限定されない。ただし、グループのメモリセルの理論上最大耐久性に達する前に、グループのスペアユニットがグループ内を複数回循環するのに十分なユーザユニットが、グループには含まれ得る。
図3に示されるように、ユーザユニット324-1のそれぞれには、異なるシーケンシャル論理アドレスが対応付けられており、これは、その物理ユニットの括弧外の番号で表されている。例えば、図3に示される例では、ユーザユニット322-0の論理アドレスは0、ユーザユニット322-1の論理アドレスは1というように、ユーザユニット322-9の論理アドレスが9になるまで、論理アドレスのシーケンスは0~9まで続く。
グループの論理アドレスシーケンス内の最初の論理アドレスを有するユーザユニットは、本明細書ではベースユニットと称され得る。例えば、図3に示される例では、ユーザユニット322-0は、ベースユニットである。本明細書でさらに説明されるように(例えば図5に関連して)、データ再配置先である物理的位置を識別するために、ベースユニットに対応付けられた物理アドレス(例えば図3に示される例では0)が代数マッピングの中で使用され得る。
図3に示される例では、物理ユニット322-10~322-12は、データを記憶してない。さらに、物理ユニット322-10~322-12には、これらの物理ユニット内の「X」で表されるように、シーケンシャル論理アドレスが対応付けられていない。これらの物理ユニットは、まとめてスペアユニット324-2と称され得、本明細書で前述されたように、素数の個数(例えば3個)の物理ユニットを含み得る。
図3に示されるように、スペアユニット324-2のそれぞれに対応付けられた物理アドレスは、グループの物理アドレスシーケンス内の異なる連続物理アドレスである。例えば、スペアユニット322-10に対応付けられた物理アドレスは10であり、スペアユニット322-11に対応付けられた物理アドレスは11であり、スペアユニット322-12に対応付けられた物理アドレスは12である。
グループのスペアユニットシーケンス内の最初のスペアユニットは、本明細書ではエッジユニットと称され得る。例えば、図3に示される例では、スペアユニット322-10は、エッジユニットである。本明細書でさらに説明されるように(例えば図5に関連して)、データ再配置先である物理的位置を識別するために、エッジユニットに対応付けられた物理アドレス(例えば図3に示される例では10)が代数マッピングの中で使用され得る。
図4は、本開示の実施形態によるメモリで行われる一連のデータ再配置動作の概念例430を示す。メモリは、例えば図2に関連して前述されたメモリ216であり得、メモリセルの複数の物理ユニットを有するメモリセルのグループを含み得、各ユニットには、図3に関連して前述されたのと同様の方法で、異なるシーケンシャル物理アドレス0~12が対応付けられる。例えば図4に示されるように、グループは、図3に関連して前述されたのと同様に、0~9の異なるシーケンシャル論理アドレスがそれぞれに対応付けられた10個のユーザユニットと、記憶データまたは対応付けられたシーケンシャル論理アドレスを有さない3個のスペアユニットと、を含み得る。データ再配置動作は、例えば図2に関連して前述された回路210により実行され得る。
図4の1行目(例えば一番上の行)は、一連のデータ再配置動作のうちの1回目のデータ再配置動作が行われる前のグループのユーザユニット及びスペアユニットの割り当てを示しており、図3に関連して説明された割り当てに類似する。例えば、図4に示されるように、ユーザユニットには、シーケンシャル物理アドレスのうちの最初の10個(例えば0~9)が対応付けられており、スペアユニットには、シーケンシャル物理アドレスのうちの最後の3個(例えば10~12)が対応付けられている。
図4の1行目以降の後続の各行は、一連のデータ再配置動作がそれぞれ行われた後のグループのユーザユニット及びスペアユニットの割り当てを示す。例えば、図4の2行目は、1回目のデータ再配置動作が行われた後のユニット割り当てを示し、図4の3行目は、2回目のデータ再配置動作が行われた後のユニット割り当てを示し、以下同様に続いて、図4の最終行(例えば一番下の行)は、一連のデータ再配置動作のうちの最後のデータ再配置動作が行われた後のユニット割り当てを示す。
図4の2行目に示されるように、一連のデータ再配置動作のうちの1回目のデータ再配置動作の実行後、スペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前(例えばすぐ左側)にあった物理アドレスシーケンス内の物理アドレスを有するユーザユニットに記憶されていたデータは、スペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスであったスペアユニットに、再配置された。すなわち、物理アドレスが9の物理ユニットに記憶されていたデータは、物理アドレスが12の物理ユニットに再配置された。従って、2行目に示されるように、データ再配置元であるユーザユニット(例えば物理アドレスが9の物理ユニット)は、スペアユニットシーケンス内の最初のスペアユニットとなり、スペアユニットシーケンス内の最後から2番目のスペアユニットであったスペアユニット(例えば物理アドレスが11の物理ユニット)は、スペアユニットシーケンス内の最後のスペアユニットとなった。
図4の3行目に示されるように、一連のデータ再配置動作のうちの2回目のデータ再配置動作の実行後、1回目のデータ再配置動作の後にスペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前にあった物理アドレスシーケンス内の物理アドレスを有するユーザユニットに記憶されていたデータは、1回目のデータ再配置動作の後にスペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスであったスペアユニットに、再配置された。すなわち、物理アドレスが8の物理ユニットに記憶されていたデータは、物理アドレスが11の物理ユニットに再配置された。従って、3行目に示されるように、2回目のデータ再配置動作中のデータ再配置元であるユーザユニット(例えば物理アドレスが8の物理ユニット)は、スペアユニットシーケンス内の最初のスペアユニットとなり、2回目のデータ再配置動作の前にスペアユニットシーケンス内の最後から2番目のスペアユニットであったスペアユニット(例えば物理アドレスが10の物理ユニット)は、スペアユニットシーケンス内の最後のスペアユニットとなった。
図4の4行目に示されるように、一連のデータ再配置動作のうちの3回目のデータ再配置動作の実行後、2回目のデータ再配置動作の後にスペアユニットに対応付けられた連続物理アドレスのうちの最初の物理アドレスの直前にあった物理アドレスシーケンス内の物理アドレスを有するユーザユニットに記憶されていたデータは、2回目のデータ再配置動作の後にスペアユニットに対応付けられた連続物理アドレスのうちの最後の物理アドレスであったスペアユニットに、再配置された。すなわち、物理アドレスが7の物理ユニットに記憶されていたデータは、物理アドレスが10の物理ユニットに再配置された。従って、4行目に示されるように、3回目のデータ再配置動作中のデータ再配置元であるユーザユニット(例えば物理アドレスが7の物理ユニット)は、スペアユニットシーケンス内の最初のスペアユニットとなり、3回目のデータ再配置動作の前にスペアユニットシーケンス内の最後から2番目のスペアユニットであったスペアユニット(例えば物理アドレスが9の物理ユニット)は、スペアユニットシーケンス内の最後のスペアユニットとなった。
シーケンスの残りのデータ再配置動作は、図4の残りの行に示されるように、同様の方法で続き得る。よって、データ再配置動作の効果は、スペアユニットがグループ全体を通して循環するまで、ユーザユニットを通してスペアユニットを順次移動させる(例えばスライドさせる)ことであることがわかる。本明細書で前述されたように(例えば図2に関連して)、一連のデータ再配置動作はそれぞれ、別個のトリガーイベントに応じて実行され得る。
図4に示される例示的な一連のデータ再配置動作は、13個のデータ再配置動作を含むが、本開示の実施形態は、このように限定されない。例えば、メモリの寿命にわたり同様の方法で、追加のデータ再配置動作が続けて実行され得る(例えば後続のトリガーイベントに応じて)。
図5は、本開示の実施形態による、メモリ内のデータ再配置先である物理的位置を識別するための代数マッピングの方法540を示す。メモリは、例えば図2に関連して前述されたメモリ216であり得、メモリセルの複数の物理ユニット(例えばユーザユニット及びスペアユニット)を有するメモリセルのグループを含み得、各ユニットには、図2~図3に関連して前述されたのと同様の方法で、異なるシーケンシャル物理アドレスが対応付けられる。方法540(例えば図5に示される代数マッピング)は、例えば、図2に関連して前述された回路210により実行され得る。
ブロック542にて、再配置されたデータの物理アドレスが特定される(例えば計算される)。図5に示されるように、再配置されたデータの物理アドレス(PA)は、次の式により与えられる。
PA=(LA+BASE)%(U+N)
LAは、メモリ内の再配置されたデータの論理アドレスであり、BASEは、グループのベースユニットに対応付けられた物理アドレスであり、Uは、グループ内のユーザユニットの数であり、Nは、グループ内のスペアユニットの数である(例えばU+Nはグループ内の物理ユニットの総数である)。
ブロック544にて、ブロック542で計算された再配置されたデータの物理アドレスが、グループのエッジユニットに対応付けられた物理アドレス以上であるか否かが判定される。ブロック542で計算された物理アドレスがグループのエッジユニットに対応付けられた物理アドレス未満であると判定された場合、ブロック542で計算された物理アドレスは、メモリ内のデータ再配置先である物理的位置であると判定され、ブロック548にて、その物理アドレスは、識別された物理的位置(例えば識別された物理アドレス)として返される。
ブロック544にて、ブロック542で計算された物理アドレスがグループのエッジユニットに対応付けられた物理アドレス以上であると判定された場合、ブロック542で計算された物理アドレスは、メモリ内のデータ再配置先である物理的位置ではない。代わりに、方法540は、再配置されたデータの別の物理アドレスが特定される(例えば計算される)ブロック546に進む。図5に示されるように、この物理アドレス(PA)は、ブロック542で計算された物理アドレス(PA)にグループ内のスペアユニットの数(N)を加算することにより計算される。次に、ブロック546で計算されたこの物理アドレスは、ブロック548にて、データ再配置先である識別された物理的位置(例えば識別された物理アドレス)として返される。
本明細書では特定の実施形態が示され説明されたが、示される特定の実施形態は、同じ結果を達成するように意図された構成と置き換えられ得ることを、当業者は理解するであろう。本開示は、本開示のいくつかの実施形態の適合形態または変形形態を含むことを意図する。上記の説明は、例示目的であり、限定目的ではないことを理解されたい。上記の実施形態の組み合わせ、及び本明細書に具体的に記載されていない他の実施形態は、上記の説明を検討することで、当業者には明らかとなるであろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。従って、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲と、添付の特許請求の範囲に権利を与えられた内容と同等物の全範囲とを参照して、特定されるべきである。
前述の発明を実施するための形態では、本開示を簡素化する目的で、いくつかの特徴が単一の実施形態にまとめられている。本開示のこの方法は、本開示の開示された実施形態が、各請求項に明確に列挙された特徴より多くの特徴を使用する必要があるという意図を反映するものとして、解釈されるべきではない。むしろ、下記の特許請求の範囲が反映するように、発明の主題は、開示された単一の実施形態の全ての特徴よりも少ない特徴で存在する。従って、下記の特許請求の範囲は、本明細書では発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。

Claims (20)

  1. メモリセルの複数の物理ユニットを有するメモリであって、
    前記物理ユニットのそれぞれには、異なるシーケンシャル物理アドレスが対応付けられており、
    第1のいくつかの前記物理ユニットには、データが記憶されており、
    第2のいくつかの前記物理ユニットにはデータが記憶されておらず、前記第2のいくつかの物理ユニットのそれぞれに対応付けられた前記物理アドレスは、前記シーケンス内の異なる連続物理アドレスである、
    前記メモリと、
    前記第2のいくつかの物理ユニットに対応付けられた前記連続物理アドレスのうちの最初の物理アドレスの直前にある前記シーケンス内物理アドレスを有する、前記第1のいくつかの物理ユニットのうちの物理ユニットに記憶されているデータを、前記第2のいくつかの物理ユニットに対応付けられた前記連続物理アドレスのうちの最後の物理アドレスに再配置するように構成された回路と、
    を備える装置。
  2. 前記回路は、データを記憶していない前記第2のいくつかの前記物理ユニットを変更するように構成される、請求項1に記載の装置。
  3. 前記回路は、前記第2のいくつかの物理ユニットに対応付けられた前記連続物理アドレスのうちの前記最後の物理アドレスに前記データが再配置された後に、データを記憶している前記第1のいくつかの物理ユニットに対応付けられる論理アドレスをランダム化するように構成される、請求項1に記載の装置。
  4. 前記メモリは、メモリセルの追加の複数の物理ユニットを含み、
    前記追加の物理ユニットのそれぞれには、異なるシーケンシャル物理アドレスが対応付けられており、
    第1のいくつかの前記追加の物理ユニットには、データが記憶されており、
    第2のいくつかの前記追加の物理ユニットにはデータが記憶されておらず、前記第2のいくつかの追加の物理ユニットのそれぞれに対応付けられた前記物理アドレスは、前記シーケンス内の異なる連続物理アドレスであり、
    前記第2のいくつかの追加の物理ユニットに対応付けられた前記連続物理アドレスのうちの最初の物理アドレスの直前にある前記シーケンス内物理アドレスを有する、前記第1のいくつかの追加の物理ユニットのうちの物理ユニットに記憶されているデータを、前記第2のいくつかの追加の物理ユニットに対応付けられた前記連続物理アドレスのうちの最後の物理アドレスに再配置するように構成された追加の回路を、前記装置は含む、
    請求項1~3のいずれか1項に記載の装置。
  5. 前記回路は、前記メモリで実行されているプログラム動作の数をカウントするように構成されたカウンタを含み、
    前記回路は、前記カウンタによる前記メモリで実行されるプログラム動作の数が特定数に達したことに応じて、前記データの前記再配置を開始するように構成される、
    請求項1~3のいずれか1項に記載の装置。
  6. 前記回路は、前記シーケンス内の前記物理アドレスのうちの最初の物理アドレスを有する、前記第1のいくつかの物理ユニットのうちの前記物理ユニットに対応付けられた論理アドレスを記憶するように構成されたレジスタを含む、請求項1~3のいずれか1項に記載の装置。
  7. メモリを作動させる方法であって、
    前記メモリの第1の物理ユニットに記憶されているデータを、前記メモリの第2の物理ユニットに再配置することを含み、
    前記メモリの前記第1の物理ユニットは、データを記憶しており、かつ異なる物理アドレスが対応付けられた前記メモリの複数の物理ユニットのうちの1つであり、
    前記メモリの前記第2の物理ユニットは、データを記憶しておらず、かつ異なるシーケンシャル物理アドレスが対応付けられた前記メモリの複数の物理ユニットのうちの1つであり、
    前記メモリの前記第1の物理ユニットに対応付けられた前記物理アドレスは、前記シーケンシャル物理アドレスのうちの最初の物理アドレスの直前にあり、
    前記メモリの前記第2の物理ユニットに対応付けられた前記物理アドレスは、前記シーケンシャル物理アドレスのうちの最後の物理アドレスである、
    前記方法。
  8. 前記方法は、前記再配置されたデータを検知する動作中に、前記メモリの前記第1の物理ユニットに記憶されているデータの再配置先である前記第2の物理ユニットに対応付けられた前記物理アドレスを、代数マッピングを使用して識別することを含む、請求項7に記載の方法。
  9. 前記方法は、前記メモリで実行されているプログラム動作の数が特定数になったことに応じて、前記メモリの前記第1の物理ユニットに記憶されている前記データを、前記メモリの前記第2の物理ユニットに再配置することを含む、請求項7~8のいずれか1項に記載の方法。
  10. 前記メモリの前記第1の物理ユニットに記憶されている前記データを、前記メモリの前記第2の物理ユニットに再配置することにより、
    前記メモリの前記第1の物理ユニットは、データを記憶しておらず、かつ前記シーケンシャル物理アドレスのうちの最初の物理アドレスが対応付けられた前記メモリの物理ユニットとなり、
    前記メモリの第3の物理ユニットは、データを記憶しておらず、かつ前記シーケンシャル物理アドレスのうちの最後の物理アドレスが対応付けられた前記メモリの物理ユニットとなり、
    前記方法はさらに、前記メモリの第4の物理ユニットに記憶されているデータを、前記メモリの前記第3の物理ユニットに再配置することを含み、前記メモリの前記第4の物理ユニットに対応付けられた前記物理アドレスは、前記メモリの前記第1の物理ユニットに対応付けられた前記物理アドレスの直前にある、
    請求項7~8のいずれか1項に記載の方法。
  11. メモリセルの複数のグループを有するメモリであって、
    前記グループのそれぞれは、メモリセルの複数の物理ユニットを含み、
    各グループの前記物理ユニットのそれぞれには、異なるシーケンシャル物理アドレスが対応付けられており、
    各グループの第1のいくつかの前記物理ユニットには、データが記憶されており、
    各グループの第2のいくつかの前記物理ユニットにはデータが記憶されておらず、各グループの前記第2のいくつかの物理ユニットのそれぞれに対応付けられた前記物理アドレスは、前記シーケンス内の異なる連続物理アドレスである、
    前記メモリと、
    各グループに関して、そのグループの前記第2のいくつかの物理ユニットに対応付けられた前記連続物理アドレスのうちの最初の物理アドレスの直前にある前記シーケンス内物理アドレスを有する、そのグループの前記第1のいくつかの物理ユニットのうちの物理ユニットに記憶されているデータを、そのグループの前記第2のいくつかの物理ユニットに対応付けられた前記連続物理アドレスのうちの最後の物理アドレスに再配置するように構成された回路と、
    を備える装置。
  12. 前記回路は、グループごとに別個の回路を含む、請求項11に記載の装置。
  13. 各グループの前記物理ユニットのそれぞれは、同一のサイズを有する、請求項11に記載の装置。
  14. データを記憶していない各グループの前記第2のいくつかの物理ユニットは、素数の個数の物理ユニットを含む、請求項11に記載の装置。
  15. 前記メモリは、三次元クロスポイントメモリを含む、請求項11~14のいずれか1項に記載の装置。
  16. メモリを作動させる方法であって、
    データを記憶していない前記メモリの物理ユニットの数を変更することであって、データを記憶していない前記メモリの前記物理ユニットには、異なるシーケンシャル物理アドレスが対応付けられている、前記変更することと、
    データを記憶していない前記物理ユニットの数を変更した後に、前記メモリの物理ユニットに記憶されているデータを、データを記憶していない前記メモリの前記物理ユニットのうちの1つに再配置することと、
    を含み、
    前記記憶データの再配置元である前記メモリの前記物理ユニットに対応付けられた物理アドレスは、前記シーケンシャル物理アドレスのうちの最初の物理アドレスの直前にあり、
    前記記憶データの再配置先である前記メモリの前記物理ユニットに対応付けられた前記物理アドレスは、前記シーケンシャル物理アドレスのうちの最後の物理アドレスである、
    前記方法。
  17. 前記方法は、前記メモリの前記物理ユニットに記憶されている前記データを、テーブルを使用することなく、データを記憶していない前記メモリの前記物理ユニットのうちの前記1つに再配置することを含む、請求項16に記載の方法。
  18. 前記方法は、前記メモリの平均耐久性に少なくとも部分的に基づいて、データを記憶していない前記メモリの前記物理ユニットの数を変更することを含む、請求項16~17のいずれか1項に記載の方法。
  19. 前記方法は、前記メモリの作業負荷及び前記メモリのタイプに少なくとも部分的に基づいて、データを記憶していない前記メモリの前記物理ユニットの数を変更することを含む、請求項16~17のいずれか1項に記載の方法。
  20. データを記憶していない前記メモリの前記物理ユニットの数を変更することは、
    データを記憶していない前記メモリの前記物理ユニットの数を増やすことと、
    データを記憶していない前記メモリの前記物理ユニットの数を減らすことと、
    のうちの1つを含む、請求項16~17のいずれか1項に記載の方法。
JP2021523480A 2018-11-01 2019-10-09 メモリ内のデータ再配置 Pending JP2022506259A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/177,985 2018-11-01
US16/177,985 US10795576B2 (en) 2018-11-01 2018-11-01 Data relocation in memory
PCT/US2019/055289 WO2020091962A1 (en) 2018-11-01 2019-10-09 Data relocation in memory

Publications (1)

Publication Number Publication Date
JP2022506259A true JP2022506259A (ja) 2022-01-17

Family

ID=70458103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021523480A Pending JP2022506259A (ja) 2018-11-01 2019-10-09 メモリ内のデータ再配置

Country Status (6)

Country Link
US (1) US10795576B2 (ja)
EP (1) EP3874374A4 (ja)
JP (1) JP2022506259A (ja)
KR (1) KR20210063432A (ja)
CN (1) CN112997160A (ja)
WO (1) WO2020091962A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory
CN114610232A (zh) * 2020-04-28 2022-06-10 华为技术有限公司 一种存储系统、内存管理方法和管理节点
US20210012844A1 (en) * 2020-09-25 2021-01-14 Intel Corporation Endurance and serviceability in solid state drives

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341989A (ja) * 2003-05-19 2004-12-02 Matsushita Electric Ind Co Ltd メモリカードパックとメモリカード
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
JP2009503629A (ja) * 2005-06-08 2009-01-29 サンディスク アイエル リミテッド プログラム可能な耐久度を有するフラッシュメモリ
JP2010108246A (ja) * 2008-10-30 2010-05-13 Hitachi Ltd 記憶装置及びデータ格納領域管理方法
JP2012014400A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
JP2013191150A (ja) * 2012-03-15 2013-09-26 Toshiba Corp ビデオ配信サーバ、ssd制御方法
US9158672B1 (en) * 2011-10-17 2015-10-13 Rambus Inc. Dynamic deterministic address translation for shuffled memory spaces
WO2015173966A1 (ja) * 2014-05-16 2015-11-19 富士通株式会社 情報処理装置、書き込み制御回路、書き込み制御方法、及び書き込み制御プログラム
JP2016170703A (ja) * 2015-03-13 2016-09-23 富士通株式会社 記憶装置、記憶装置の制御方法、及び情報処理システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
US8275928B2 (en) 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
US8694718B2 (en) 2008-12-30 2014-04-08 Micron Technology, Inc. Wear leveling for erasable memories
US8255613B2 (en) * 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
KR101739556B1 (ko) 2010-11-15 2017-05-24 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
JP5728292B2 (ja) * 2011-02-04 2015-06-03 株式会社東芝 メモリデバイス及びホストシステム
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9116792B2 (en) 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
US9471451B2 (en) * 2014-06-18 2016-10-18 International Business Machines Corporation Implementing enhanced wear leveling in 3D flash memories
US10120613B2 (en) * 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10228878B1 (en) * 2017-10-30 2019-03-12 Western Digital Technologies, Inc. Wear leveling in non-volatile storage
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341989A (ja) * 2003-05-19 2004-12-02 Matsushita Electric Ind Co Ltd メモリカードパックとメモリカード
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
JP2009503629A (ja) * 2005-06-08 2009-01-29 サンディスク アイエル リミテッド プログラム可能な耐久度を有するフラッシュメモリ
JP2010108246A (ja) * 2008-10-30 2010-05-13 Hitachi Ltd 記憶装置及びデータ格納領域管理方法
JP2012014400A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
US9158672B1 (en) * 2011-10-17 2015-10-13 Rambus Inc. Dynamic deterministic address translation for shuffled memory spaces
JP2013191150A (ja) * 2012-03-15 2013-09-26 Toshiba Corp ビデオ配信サーバ、ssd制御方法
WO2015173966A1 (ja) * 2014-05-16 2015-11-19 富士通株式会社 情報処理装置、書き込み制御回路、書き込み制御方法、及び書き込み制御プログラム
JP2016170703A (ja) * 2015-03-13 2016-09-23 富士通株式会社 記憶装置、記憶装置の制御方法、及び情報処理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MOINUDDIN K. QURESHI ET AL.: "Enhancing Lifetime and Security of PCM-Based Main Memory with Start-Gap Wear Leveling", PROCEEDINGS OF THE 42ND ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, JPN6022023286, 12 December 2009 (2009-12-12), pages 14 - 23, XP058221051, ISSN: 0005059171, DOI: 10.1145/1669112.1669117 *

Also Published As

Publication number Publication date
KR20210063432A (ko) 2021-06-01
CN112997160A (zh) 2021-06-18
EP3874374A1 (en) 2021-09-08
US10795576B2 (en) 2020-10-06
WO2020091962A1 (en) 2020-05-07
US20200142589A1 (en) 2020-05-07
US20210019052A1 (en) 2021-01-21
EP3874374A4 (en) 2022-08-03

Similar Documents

Publication Publication Date Title
US10579537B2 (en) Memory having a static cache and a dynamic cache
US11586357B2 (en) Memory management
US20200233585A1 (en) Data relocation in hybrid memory
KR102174293B1 (ko) 확률론적 데이터 구조에 기초한 메모리 내의 사전적인 교정 조치
US20130275713A1 (en) Boot partitions in memory devices and systems
JP2022506259A (ja) メモリ内のデータ再配置
JP2021522567A (ja) カウンタ更新動作のための装置及び方法
US11113205B2 (en) Die addressing using a reduced size translation table entry
US11194708B2 (en) Data relocation in memory having two portions of data
US11983403B2 (en) Data relocation in memory
CN113302582A (zh) 每光标逻辑单元号定序

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230516