CN109727629B - 使用利用多间隙进度字段的磨损均衡的方法和*** - Google Patents

使用利用多间隙进度字段的磨损均衡的方法和*** Download PDF

Info

Publication number
CN109727629B
CN109727629B CN201811284499.8A CN201811284499A CN109727629B CN 109727629 B CN109727629 B CN 109727629B CN 201811284499 A CN201811284499 A CN 201811284499A CN 109727629 B CN109727629 B CN 109727629B
Authority
CN
China
Prior art keywords
data
physical memory
memory region
region
migration
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.)
Active
Application number
CN201811284499.8A
Other languages
English (en)
Other versions
CN109727629A (zh
Inventor
V·G·理查德何
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Publication of CN109727629A publication Critical patent/CN109727629A/zh
Application granted granted Critical
Publication of CN109727629B publication Critical patent/CN109727629B/zh
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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage 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/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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及使用利用多间隙进度字段的磨损均衡的方法和***。数据存储设备包括永久存储装置和处理器。永久存储装置存储数据。处理器获得对于存储在永久存储装置中的数据的数据访问请求,使用全局迁移进度索引从永久存储装置获得数据的一部分,并响应于数据访问请求提供数据的所获得的部分。

Description

使用利用多间隙进度字段的磨损均衡的方法和***
技术领域
本公开的各实施例涉及使用利用多间隙进度字段的磨损均衡的 方法和***。
背景技术
固态存储器存储设备可以用于存储数据。这种固态存储设备可以 基于固态存储器,例如相变存储器(PCM)、自旋扭矩磁随机存取存 储器,其随着数据被写入存储器而劣化。因此,在固态存储器失去其 可靠地保持数据的能力之前,仅允许对固态存储器的有限数量的写入。 因此,即使具有完美的磨损均衡,固态存储器存储设备也可能需要在 用户工作负载正在进行时将数据从一个存储区域迁移到另一个新的 存储区域。
发明内容
在一个方面,根据本发明的一个或多个实施例的数据存储设备包 括永久存储装置和处理器。永久存储装置存储数据。处理器获得对于 存储在永久存储装置中的数据的数据访问请求,使用全局迁移进度索 引从永久存储装置获得数据的部分,并响应于数据访问请求提供所获 得的数据部分。
在一个方面,根据本发明的一个或多个实施例的用于操作数据存 储设备的方法包括:获得对于存储在永久存储装置中的数据的数据访 问请求,使用全局迁移进度索引从永久存储装置获得数据的部分,并 响应于数据访问请求提供所获得的数据部分。
在一个方面,根据本发明的一个或多个实施例的非暂时性计算机 可读存储介质存储指令,该指令在由处理器执行时使得处理器执行操 作数据存储设备的方法,方法包括:获得对于存储在永久存储装置中 的数据的数据访问请求,使用全局迁移进度索引从永久存储装置获得数据的部分,以及响应于数据访问请求提供所获得的数据部分。
附图说明
图1A示出了根据本技术的一个或多个实施例的***的图。
图1B示出了根据本技术的一个或多个实施例的存储模块的图。
图2A示出了根据本技术的一个或多个实施例的对象和逻辑存储 器区域之间的关系的图。
图2B示出了根据本技术的一个或多个实施例的逻辑存储器区域 和物理存储器区域之间的关系的图。
图2C示出了根据本技术的一个或多个实施例的物理存储器区域 与物理存储器区域的存储器位置之间的关系的图。
图2D示出了根据本技术的一个或多个实施例的物理存储器位置 寻址表的图。
图2E示出了根据本技术的一个或多个实施例的存储器位置转换 数据的图。
图2F示出了根据本技术的一个或多个实施例的物理存储器区域 的图。
图3A示出了根据本技术的一个或多个实施例的访问数据的方法 的流程图。
图3B示出了根据本技术的一个或多个实施例的获得数据以便于 访问数据的方法的流程图。
图3C示出了根据本技术的一个或多个实施例的识别物理存储器 区域内的开始位置的方法的流程图。
图3D示出了根据本技术的一个或多个实施例的读取所请求数据 的部分以便于访问数据的方法的流程图。
图4A示出了根据本技术的一个或多个实施例的存储数据的方法 的流程图。
图4B示出了根据本技术的一个或多个实施例的写入数据的方法 的流程图。
图5示出了根据本技术的一个或多个实施例的执行磨损均衡周期 的部分的方法的流程图
图6A示出了根据本技术的一个或多个实施例的逻辑存储器区域 和物理存储器区域之间随时间的示例映射的图。
图6B示出了根据本技术的一个或多个实施例的图6A中所示的示 例的逻辑存储器区域的存储器位置转换数据的图。
具体实施方式
现在将参考附图详细描述本技术的特定实施例。为了一致性,各 个图中的相同元件由相同的附图标记表示。
在本技术的实施例的以下详细描述中,阐述了许多具体细节以便 提供对该技术的更透彻的理解。然而,对于本领域普通技术人员显而 易见的是,可以在没有这些具体细节的情况下实践该技术。在其他情 况下,没有详细描述众所周知的特征以避免使描述不必要地复杂化。
在整个申请中,序数(例如,第一、第二、第三等)可以用作要 素的形容词(即,申请中的任何名词)。除非明确公开(例如通过使 用术语“之前”、“之后”、“单个”和其他这样的术语),否则使 用序数不是暗示或创建要素的任何特定排序,也不是将任何要素限制 为仅单个要素。序数的使用是为了区分要素。作为示例,第一要素不 同于第二要素,并且第一要素可以包含多于一个要素并且在要素排序 中在第二要素之后(或在第二要素之前)。
在以下对图1A-6B的描述中,在本技术的各种实施例中关于附图 描述的任何组件可以等同于关于任何其他附图描述的一个或多个相 似名称的组件。为简洁起见,关于每个附图,将不再重复对这些组件 的描述。因此,每个附图的组件的每个实施例通过引用并入,并且假设可选地存在于具有一个或多个相似名称的组件的每个其他图中。另 外,根据本技术的各种实施例,附图的组件的任何描述将被解释为可 选实施例,其可以附加于、结合或代替关于任何其他附图中相应的相 似名称的组件描述的实施例来实现。
通常,本技术的实施例涉及固态存储***中的数据迁移。更具体 地,本技术的实施例涉及在物理存储器区域内迁移数据以均衡物理存 储器区域上的磨损。如本文所使用的,物理存储器区域的磨损指的是 物理存储器区域的读取/写入周期。在本技术的一个或多个实施例中,物理存储器区域可以是固态设备的部分,其在固态设备或其一部分变 得不可操作之前具有有限数量的读取/写入周期。
在本技术的一个或多个实施例中,固态存储器设备的物理存储器 可以被划分为多个区域。可以将多个区域聚合在一起以形成宏区域。 宏区域内的区域可以周期性地与其他区域交换以均衡整个宏区域上 的磨损。
例如,宏区域内的第一区域可以存储频繁修改的数据,该数据使 得第一区域使用的物理存储器比存储不经常修改的数据的其他存储 器区域更快地劣化。为了防止特定区域使用的物理存储器比其他区域 更快地劣化,当确定特定区域使用的物理存储器的磨损率高于平均水 平时,存储在特定区域中的数据可以与另一区域交换。可以根据需要重复上述过程以磨损均衡固态存储器设备。
另外,存储在特定区域中的数据可以在该区域内迁移,以均衡该 区域上的磨损。每个物理存储器区域可以包括用于存储数据块的多个存储器位置。为了促进在各个物理存储器区域中的数据迁移,每个物 理存储器区域内的存储器位置可以存储间隙。如本文所使用的,间隙 是指有意未使用的存储器位置。
当执行物理存储器区域的磨损均衡时,存储在存储器位置中的数 据可以与间隙对调。换句话说,可以将存储器位置中的数据复制到存 储间隙的第二存储器位置,并且可以在复制之后删除存储器位置中的 数据。在对调两个存储器位置之后,可以更新与物理存储器区域相关 联的逻辑地址到物理地址转换。换句话说,可以更新与物理存储器区域相关联的逻辑到物理地址映射,以便可以在将来检索现在存储的数 据。
在本发明的一个或多个实施例中,可以通过以下操作来执行从物 理存储器区域删除数据:(i)将字节序列写入存储器区域,例如,所 有0或任何其他类型的序列,使得存储在物理存储器区域中的所有或 者部分字节序列是不可恢复的,或者(ii)通过指示已删除该存储器 区域而不改变已经存储在物理存储器区域中的字节序列。换句话说,在本发明的一个或多个实施例中,可以删除存储在物理存储器区域中 的数据而不改变存储在物理存储器区域中的字节序列。而是,可以将 物理存储器区域标记为可用并且将其视为没有数据存储在物理存储 器区域中。
图1A和1B分别示出了根据本技术的一个或多个实施例的***和 ***的存储模块。参考图1A,该***包括可操作地连接到数据存储 设备(100)的一个或多个客户端(客户端A(160A)-客户端M (160M))。
在本技术的一个实施例中,客户端(160A-160M)可以是任何类 型的物理***,其包括向数据存储设备(100)发出读取请求和/或向数据存储设备(100)发出写入请求的功能。尽管未在图1A中示出, 每个客户端(160A-160M)可以包括客户端处理器(未示出)、客户端存储器(未示出)以及实现本技术的一个或多个实施例所需的任何其他软件和/或硬件。
在本技术的一个实施例中,客户端(160A-160M)被配置为执行 操作***(OS),该操作***包括文件***、块设备驱动程序、应用 程序编程接口(API)以使客户端能够访问数据存储设备和/或用户编 程库。文件***、块设备驱动程序和/或用户编程库提供用于从数据存储设备(100)存储和检索文件的机制。更具体地,文件***、块设 备驱动程序和/或用户编程库包括执行必要动作以向数据存储设备发 出读取请求和写入请求的功能。它们还可以提供编程接口,以能够创 建和删除文件,读取和写入文件,在文件中执行搜索,创建和删除目 录,管理目录内容等。此外,它们还可以提供管理界面来创建和删除文件***。在本技术的一个实施例中,为了访问文件,操作***(经 由文件***、块设备驱动程序和/或用户编程库)通常提供文件操作界 面以打开、关闭、读取和写入每个文件内的数据和/或操纵相应的元数 据。
在本技术的一个实施例中,客户端(160A-160M)与数据存储设 备(100)的结构(140)对接以与数据存储设备(100)通信,如下 面进一步描述的。
在本技术的一个实施例中,数据存储设备(100)是包括诸如固 态存储器的永久存储装置的***,并且被配置为服务来自一个或多个 客户端(160A-160M)的读取请求和/或写入请求。
根据本技术的一个或多个实施例,数据存储设备(100)包括组 织在存储阵列(110)中的一个或多个存储模块(120A-120N)、控制 模块(150)以及将存储模块(120A-120N)与客户端(160A-160M) 和控制模块(150)对接的结构(140)。下面描述这些组件中的每一 个。
根据本技术的实施例,存储阵列(110)容纳一个或多个存储模 块(120A-120N)。存储阵列可以实现数据存储设备的模块化配置, 其中可以根据需要或期望将存储模块添加到数据存储设备(100)或 从数据存储设备(100)移除。下面参考图1B描述根据本技术的实施 例的存储模块(120)。
继续对数据存储设备(100)的讨论,数据存储设备包括结构(140)。 结构(140)可以使用以下协议中的一个或多个来提供客户端 (160A-160M)、存储模块(120A-120N)和控制模块(150)之间的 连接:***组件互连(PCI)、PCI-快速(PCIe)、PCI-扩展(PCI-X)、 非易失性存储器快速(NVMe)、PCI-快速结构上的非易失性存储器 快速(NVMe)、以太网结构上的非易失性存储器快速(NVMe)和 无限带结构上的非易失性存储器快速(NVMe)。本领域技术人员将 理解,该技术不限于上述协议。
此外,在本技术的一个或多个实施例中,数据存储设备(100) 包括控制模块(150)。通常,控制模块(150)是硬件模块,其可以 被配置为执行管理任务,诸如在固态存储器模块(120A-120N)中分 配和解除分配存储器区域以及使分配的存储器区域可由客户端访问 (160A-160M)。此外,控制模块可以执行一个或多个步骤以均衡存储器区域内的磨损。在本技术的一个实施例中,这些功能(例如,图 3A-5中描述的一个或多个步骤)由控制模块(150)执行。
控制模块(150)与结构(140)对接,以便与存储模块(120A-120N) 和/或客户端(160A-160M)通信。控制模块可以支持以下通信标准中 的一个或多个:PCI、PCIe、PCI-X、以太网(包括但不限于IEEE 802.3a-802.3bj下定义的各种标准)、无限带和融合以太网(RoCE) 上的远程直接存储器访问(RDMA),或与结构(140)对接所需的 任何其他通信标准。
图1B示出了根据本技术的一个或多个实施例的存储模块。存储 模块(120)包括用于永久地存储数据的固态存储器(122)。在本技术的一个实施例中,存储模块(120)的固态存储器(122)可以包括 但不限于自旋扭矩磁性随机存取存储器(ST-RAM)和相变存储器(PCM)。通常,固态存储器(122)可以对应于具有有限数量的编 程-擦除周期或写入周期的任何类型的存储器。在本技术的一个或多个实施例中,有限数量的编程-擦除或写入周期需要使用方法来避免 过多写入固态存储器的相同区域以防止数据丢失,如下面详细描述的。
继续讨论存储模块(120),如图1B所示,根据本技术的一个或 多个实施例,存储模块(120)还包括存储模块控制器(124)。在本 技术的一个实施例中,存储模块控制器(124)被配置为接收和服务 于向固态存储器(122)读取和/或写入数据的请求。这些请求可以源自客户端(160A-160M)或控制模块(150),并且可以经由结构(140) 传送到存储模块控制器(124)。存储模块控制器(124)可以执行图 3A-3D中描述的一个或多个步骤以便服务读取或写入请求。此外,存 储模块控制器(124)可以执行或可以支持包括图5中描述的方法的管理任务。
在本技术的一个实施例中,存储模块控制器(124)包括处理器 (128)(例如,一个或多个核,或处理器的微核,其被配置为执行 指令)和存储器(130)(例如,可以是但不限于动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM和DDR SDRAM的易失 性存储器),以执行图3A-5中描述的步骤中的至少一个。可替代地 或另外地,存储模块控制器(124)可以包括现场可编程门阵列(FPGA) 和/或专用集成电路(ASIC)(126)。在包括FPGA和/或ASIC和处理器的存储模块控制器中,FPGA和/或ASIC可以主要服务读取和写 入请求,而处理器可以处理或支持管理任务,包括与磨损均衡和/或数 据迁移相关的任务,如下面进一步描述的。
本领域技术人员将认识到,***的架构不限于图1A和1B中所示 的组件。例如,数据存储设备(100)的组件可以包括任何数量的存 储模块(120A-120N)。此外,存储模块(120)的存储模块控制器(124) 和数据存储设备(100)的控制模块(150)可以配备有中央处理单元 (CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/ 或任何其他类型的处理器,而不背离该技术。另外,在不背离技术的 情况下,结构可以基于除了上面讨论的那些之外的通信标准。
存储模块的固态存储器(122)可以存储来自客户端的数据。为 了便于磨损平衡的执行,存储的数据可以与一组逻辑地址相关联。逻 辑地址可以与固态存储器的对应物理存储地址相关联。为了进一步阐 明这些关系,图2A-2C示出了存储对象、逻辑存储器区域、物理存储 器区域和存储器位置之间的关系图。
图2A示出了根据本技术的一个或多个实施例的第一关系图。第 一关系图示出了存储对象(200A-200N)和逻辑存储器区域(201A-201N)之间的关系。从图中可以看出,每个存储对象可以与 逻辑存储器区域相关联。如本文所使用的,存储对象是指存储在存储 模块中的客户端的数据的一部分。如本文所使用的,逻辑存储器区域 指的是从存储模块的物理存储器抽象的存储模块的数据存储量。多个 逻辑存储器区域可以与单个存储对象相关联。
图2B示出了根据本技术的一个或多个实施例的第二关系图。第 二关系图示出了逻辑存储器区域(202)和物理存储器区域(203)之间的关系。逻辑存储器区域(202)可以与存储模块的固态存储装置 的物理存储器区域(203)相关联。如本文所使用的,物理存储器区 域是指由存储模块的固态存储装置托管的可寻址数量的数据存储器。 逻辑存储器区域和物理存储器区域之间可能存在一对一的关系。
图2C示出了根据本技术的一个或多个实施例的第三关系图。第 三关系图示出了物理存储器区域(203)和存储器位置(204A,204B) 之间的关系。物理存储器区域(203)可以包括多个存储器位置。如本文所使用的,存储器位置可以是可以被寻址的存储模块的固态存储 装置的最小物理存储量。
如上面关于图2A所讨论的那样,存储对象可以与逻辑存储器区 域相关联,逻辑存储器区域是存储在物理存储器区域中的数据的逻辑 表示。为了获得存储在物理存储器区域中的数据,可以使用寻址表将 逻辑存储器区域转换为用于对固态存储装置的物理存储器区域进行读取和写入操作的物理表示。
图2D示出了根据本技术的一个或多个实施例的物理存储器位置 寻址表(210)的图。寻址表(210)可以是存储在存储设备上的数据结构。寻址表(210)可以包括用于将逻辑存储器区域转换为物理存 储器区域的信息,从而使能够检索先前使用逻辑存储器区域存储的数 据。
在本发明的一个或多个实施例中,数据存储设备(100,图1A) 可以包括用于每个宏区域的物理存储器位置寻址表(210),即,数 据存储设备的逻辑存储器区域的逻辑分组。每个物理存储器位置寻址 表可用于在宏区域中存储/获得数据。虽然在图2D中示出作为单独的 结构,但是在不背离本发明的情况下,多个物理存储器位置寻址表可 以集成到单个数据结构中。
寻址表可以包括逻辑存储器区域到物理存储器区域转换条目 (211)。转换条目(211)的每个条目(212,213)可以包括逻辑存 储器区域标识符(212A,213A)和存储器位置转换数据(212B,213B)。 存储器位置转换数据(212B,213B)可以部分地用于检索先前存储在物理存储器区域中的数据。因此,每个条目(212,213)可以包括 获得先前存储在逻辑存储器区域中的数据所需的信息。
如上所述,存储在物理存储器区域中的数据可以在物理存储器区 域内迁移以使物理存储器区域磨损均衡。每个条目的存储器位置转换 数据(212B,213B)还可以包括指定物理存储器区域中的数据如何在该区域内迁移的信息。关于存储器位置转换数据的其他细节,参见 图2E。
寻址表(210)还可以包括与宏区域相关联的迁移进度数据(214)。 迁移进度数据(214)可用于迁移数据,从宏区域存储/检索数据和/ 或执行宏区域的每个物理存储器区域内的数据迁移以用于磨损均衡 目的。因此,物理存储器区域可以处于各种迁移状态,即迁移前或迁 移后周期。迁移进度数据(214)可以包括指定哪些物理存储器区域已经完成数据迁移周期以及哪些物理存储器区域尚未完成数据迁移 周期的信息。
在本技术的一个或多个实施例中,迁移进度数据(202)包括全 局迁移进度索引(214A)。全局迁移进度索引(214A)可以指定已 完成数据迁移周期的宏区域的物理存储器区域的一部分和尚未完成 数据迁移周期的宏区域的物理存储区域的第二部分。
在本技术的一些实施例中,全局迁移进度索引(214A)还可以指 定每个物理存储器区域内的开始位置。如下所述,迁移数据可以在每 个物理存储器区域内的存储位置之中旋转数据。开始位置可以指定对 应于与物理存储区域相关联的逻辑存储器区域的开始的物理存储器 区域的存储器位置。
例如,如果字符ABCDGap被写入物理存储器位置,则迁移数据 旋转字符以按CDGapAB的顺序存储。由全局迁移进度索引(214A) 指定的开始位置可以指定迁移的数据中的第四个字符A。通过知道物 理存储器区域内的开始位置,可以消除迁移对存储在物理存储器位置 中的数据的影响。
在本技术的一个或多个实施例中,全局迁移进度索引(214A)可 以实现为计数器。每当迁移物理存储器区域时,计数器可以递增。将 计数器的值除以物理存储器区域的数量可以指示:(i)开始位置和(ii) 在当前周期中尚未迁移的物理存储器区域的部分。
在本技术的一个或多个实施例中,迁移进度数据(214)可以包 括全局间隙位置。如上所述,在物理存储器区域内执行迁移可以移动 物理存储器区域内的间隙。对于任何给定的迁移周期,间隙可以位于 每个物理存储器区域内的相同相对位置。因此,全局间隙位置可以指 示每个物理存储器区域内的间隙的位置。然而,对于已完成迁移周期 的物理存储器区域和尚未完成迁移周期的物理存储器区域,间隙位置可能不同。在本技术的其他实施例中,可以为存储器位置转换数据中 的每个物理存储器区域记录间隙位置。
虽然物理存储器位置寻址表(210)被示为单个数据结构,但是 在不背离本发明的情况下,可以使用多种或不同类型的数据结构来存 储包括在物理存储器位置寻址表(210)中的信息。例如,迁移进度 数据(214)可以与物理存储器位置寻址表(210)分开存储在数据结构中。
图2E示出根据本技术的一个或多个实施例的示例存储器位置转 换数据(230)的图。存储器位置转换数据(230)可以包括用于将逻辑存储器区域转换为物理存储器区域访问信息的信息。存储器位置转 换数据(230)可以包括基地址(232)、当前开始(234)、下一个开始(236)、当前间隙(238)和/或下一个间隙(240)。每个上述 项目可用于获得存储在物理存储器区域中而已迁移的数据,并在下面 依次讨论。
基地址(232)可以指定物理存储器区域的位置。基地址(232) 可以唯一地寻址物理存储器区域。
当前开始(234)可以指定物理存储器区域内的存储器位置。当 前开始(234)可以指定存储物理存储器区域中存储的数据的开始的 存储器位置。在本技术的一个或多个实施例中,随着数据在物理存储器区域内迁移,可以连续更新当前开始(234),以反映数据在物理 存储器区域内的相对移动。
例如,存储器区域可以在第一时间点包括数据ABCGap(其中A、 B和C表示存储在存储器区域的存储器位置中的数据,并且Gap表示 存储在存储器区域的存储器位置中的间隙;在整个申请中使用类似的 表示来描述存储在物理存储器区域中的数据和间隙)。在第一时间点, 当前开始(234)可以指定第一存储器位置,即,存储A的存储器位 置。在第二时间点,数据可以被迁移以被排列为GapABC。在第二时间点之后,当前开始(234)可以指定第二存储器,即,存储A的存 储器位置。
下一个开始(236)可以指定物理存储器区域内的存储器位置。 下一个开始(236)可以指定存储器位置,该存储器位置将存储在下 一个数据迁移周期完成之后在物理存储器区域中存储的数据的开始。在本技术的一个或多个实施例中,随着数据在物理存储器区域内迁移, 可以连续更新下一个开始(236),以反映数据在物理存储器区域内 的相对移动。
例如,存储器区域可以在第一时间点包括数据ABCGap。在第一 时间点,下一个开始(236)可以指定第二存储器位置,即,在下一 个迁移周期完成之后将存储A的存储器位置。在第二时间点,可以迁 移数据以将其排列为GapABC,即,在完成下一个迁移周期之后。在 第二时间点之后,下一个开始(236)可以指定第三存储器,即,在完成第二迁移周期之后将存储A的存储器位置。
当前间隙(238)可以指定存储间隙的物理存储器区域内的存储 器位置。在本技术的一个或多个实施例中,随着数据在物理存储器区 域内迁移,可以连续更新当前间隙(238),以反映间隙在物理存储器区域内的相对移动。
例如,在第一时间点,存储器区域可以包括数据ABCGap。在第 一时间点,当前间隙(238)可以指定第四存储器位置,即,存储间 隙的存储器位置。在第二时间点,可以迁移数据以将其排列为 GapABC。在第二时间点之后,当前间隙(238)可以指定第一存储器, 即,存储间隙的存储器位置。
下一个间隙(240)可以指定将在下一个数据迁移周期完成之后 存储间隙的物理存储器区域内的存储器位置。在本技术的一个或多个 实施例中,随着数据在物理存储器区域内迁移,可以连续更新下一个 间隙(240),以反映物理存储器区域内的间隙的相对移动。
例如,在第一时间点,存储器区域可以包括数据ABCGap。在第 一时间点,下一个间隙(240)可以指定第一存储器位置,即,在下 一个迁移周期完成之后将存储间隙的存储器位置。在第二时间点,可 以迁移数据以将其排列为GapABC,即,在完成下一个迁移周期之后。在第二时间点之后,下一个间隙(240)可以指定第二存储器位置, 即,在完成第二迁移周期之后将存储间隙的存储器位置。
虽然存储器位置转换数据(230)被示为包括基地址(232)、当 前开始(234)、下一个开始(236)、当前间隙(238)和下一个间 隙(240),但是在不背离本发明的情况下本技术的一个或多个实施 例可包括更多、更少或不同类型的信息。例如,存储器位置转换数据(230)可以不包括图2E中的虚线所示的部分。
为了进一步阐明物理存储器区域与物理存储器区域的存储器位 置之间的关系,图2C示出了根据本技术的一个或多个实施例的物理 存储器区域(280)的示例性结构。物理存储器区域(280)可以是分 配在存储模块(120)的固态存储器(122,图1B)中的存储器区域, 并且可以用于容纳存储对象(例如,200A)。可以通过使用物理存储 器位置寻址表(210,图2D)将逻辑存储器地址转换为物理存储器地 址来寻址物理存储器区域(280)。
图2F中的示例性物理存储器区域包括100个存储器位置 (282.0-282.99)以容纳形成存储对象的99个数据片段。每个存储器 位置可以是物理存储器区域(280)的子区域,并且每个存储器位置 具有指定的大小。存储器位置可以包括指定数量的位(例如,如果存储器位置被配置为仅存储单个变量),或者它可以跨越更大的区域, 例如,字节、千字节、兆字节等。存储器位置可以被数据片段占用(例 如,数据片段0-3(284.0-284.3)),或者它可以是空的(例如,存 储器位置99(282.99))。存储在固态存储器区域中的一组完整的数据片段可以形成存储对象,如先前在图2A中所描述的。
可以使用base_address(252)和来自基地址的附加偏移的组合来 寻址每个存储器位置(282.0-282.99)。可以通过例如当前开始(234)或下一开始(236)来指定偏移。例如,考虑物理存储器区域(280) 如图2F所示,在基地址1000开始的场景。为了到达存储在物理存储器区域(280)中的存储对象的第一数据片段(数据片段0(284.0)), 基地址“1,000”可以与偏移组合使用以到达存储器位置0。为了到达 第三数据片段(数据片段2(284.2))中,基地址“1,000”可以与第 二偏移结合使用以到达存储器位置2。
本领域技术人员将认识到,固态存储器区域不限于图2F中所示 的示例性固态存储器区域。例如,固态存储器区域的大小可以变化。 此外,可以使用各种格式来表达包括基地址和开始的条目(212、213, 图2D)的存储器位置转换数据(例如230,图2E)。虽然在上面的 描述中使用离散数字(例如,存储器位置0,1,2,...)来表示这些量, 但是它们也可以使用其他单位表示,例如存储器单位,例如位、字节、 千字节等。
图3A-5示出了根据本技术的一个或多个实施例的流程图。更具 体地,图3A-3D示出了根据本技术的实施例的用于访问数据的方法。 图4A-4B示出了根据本技术的一个或多个实施例的用于写入数据的方法。图5示出了根据本技术的一个或多个实施例的执行磨损均衡的 方法。
虽然作为单独的方法示出,但是图3A-5中示出的每个方法在不 背离本发明的情况下可以顺序地或并行地(或顺序和并行执行的组合) 执行。例如,可以周期性地执行图5中所示的执行磨损均衡的方法, 同时经由图3A-3D中所示的方法访问数据。此外,普通技术人员将理 解,这些步骤中的一些或全部可以以不同顺序执行,可以组合或省略, 并且一些或所有步骤可以并行执行。
图3A示出了根据本技术的实施例的用于访问数据的方法。
转到图3A,在步骤300中,获得数据访问请求。可以通过从客 户端接收请求来获得数据访问请求。数据访问请求可以指定客户端或 不同客户端先前存储的数据对象。
在步骤302中,使用全局迁移进度索引获得由数据访问请求指定 的数据。
在本技术的一个或多个实施例中,可以通过识别与数据对象相关 联的多个逻辑存储器区域来获得由数据访问请求指定的数据。物理存 储器位置寻址表中指定的每个逻辑存储器区域的逻辑存储器转换数 据可用于获得每个逻辑存储器区域的固态存储装置读取数据。然后可 以使用固态存储装置读取数据读取固态存储装置。例如,如关于图2E 所描述的那样,与逻辑存储器区域相关联的存储器位置转换数据可以 包括提供物理存储器区域的信息(例如,地址)的基地址。
一旦读取了物理存储器区域,就可以使用包括在存储器位置转换 数据中的全局迁移进度索引和/或附加信息来将读取数据重新排列成 其最初存储在物理存储器区域中的顺序。
在本技术的一个或多个实施例中,可以使用图3B中所示的方法 获得由数据访问请求指定的数据。
在步骤304中,响应于数据访问请求,提供在步骤302中获得的 数据。
该方法可以在步骤304之后结束。
图3B示出了根据本技术的实施例的用于读取数据的方法。
在步骤310中,识别与所请求的数据相关联的逻辑存储器区域。 可以使用如图2A中所示的映射来识别逻辑存储器区域。在不背离本 技术的情况下可以使用识别逻辑存储器区域的其他方法。
在步骤312中,识别与所识别的逻辑存储器区域相关联的物理存 储器区域。可以使用如图2B中所示的映射和/或如图2D中所示的转 换表来识别物理存储器区域。在不背离本技术的情况下,可以使用识 别物理存储器区域的其他方法。
在步骤314中,选择所识别的物理存储器区域的未读物理存储器 区域。在步骤314的第一次执行时,可以认为所有物理存储器区域都 是未读取的。
在步骤316中,识别所选物理存储器区域内的间隙。可以基于包 括在存储器位置转换数据中的信息来识别间隙及其相关位置,或者可 以基于迁移进度索引的值来计算间隙及其相关位置。
在步骤318中,识别所选物理存储器区域内的开始。在本技术的 一个或多个实施例中,可以使用包括在与所选物理存储器区域相关联 的存储器位置转换数据中的数据来识别开始。在本技术的一个或多个 实施例中,可以基于迁移进度索引的值来确定开始。在本技术的一个或多个实施例中,可以经由图3C中所示的方法识别开始。
在步骤320中,使用(i)所识别的间隙和(ii)所识别的开始从 所选物理存储器区域读取所请求数据的一部分。如上所述,任何物理 存储器区域中的数据可以从最初存储在物理存储器区域中时在物理 存储器区域中重新排列。物理存储器区域中的数据可以使用所识别的 间隙和所识别的开始重新排列成其最初存储在物理存储器区域中的顺序。可以经由图3D中所示的方法读取所请求数据的一部分。
在步骤322中,确定是否已经读取了所有识别的物理存储器区域。 如果已经读取了所有识别的物理存储器区域,则该方法可以进行到步 骤324。如果还没有读取所有识别的物理存储器区域,则该方法可以进行到步骤314。
在步骤324中,使用所请求数据的读取部分获得所请求的数据。 换言之,可以将在320中获得的每个部分附加或以其他方式布置到所 请求的数据中。
该方法可以在步骤324之后结束。
图3C示出了根据本技术的实施例的用于获得开始的方法。
在步骤330中,获得全局迁移进度索引的值。
在步骤332中,将值除以物理存储器区域的数量,以获得已经执 行的迁移周期的数量。
在步骤334中,将所获得的迁移周期数量向下舍入到最接近的整 数,以获得完成的迁移周期的数量。
在步骤336中,将完成的迁移周期的数量除以每个存储器区域的 存储器位置的数量,以获得完成的迁移的数量。
在步骤338中,将完成的迁移的数量舍入到最接近的整数以获得 开始。开始可以是图2E中所示的当前开始(234)。
该方法可以在步骤338之后结束。
图3D示出了根据本技术的实施例的用于读取所请求数据的一部 分的方法。
在步骤350中,读取物理存储器区域以获得粗略数据。如本文所 使用的,粗略数据是指虽然存储在物理存储器区域中但是作为迁移周 期的一部分重新排序的数据。
在步骤352中,使用所识别的间隙和所识别的开始重新排序粗略 数据以获得所请求数据的一部分。
如上所述,迁移数据可以使物理存储器区域内的数据和间隙在物 理存储器区域内旋转。开始可以指定在迁移之后第一存储器位置现在 位于的物理存储器区域内的存储器位置。所识别的间隙可以指定在数 据由于迁移而旋转之后物理存储器位置内的间隙位置。知道了粗略数 据的这两个特征,可以重新排列粗略数据以获得最初存储在物理存储器区域中的数据。
例如,物理存储器区域可以最初存储ABCDEGap,其中A、B、 C、D和E表示存储在物理存储器区域的单独存储器位置中的数据, 并且Gap表示间隙。在执行迁移之后,可以将数据重新排列为 DGapEABC,其中开始指定第四存储器位置,即,存储A的存储器位 置,以及指定第二存储器位置的识别间隙,即,存储间隙的存储器位 置。在读取粗略数据,即,DGapEABC之后,通过将粗略数据向左旋 转三个存储器位置,即,开始-1个存储位置,从而使数据排列为ABCDGapE,可以使用开始来重新排列粗略数据。在旋转之后,可以 使用开始和间隙的值来从数据中去除间隙,从而导致粗略数据被重新 排列为ABCDE。
该方法可以在步骤353之后结束。
图4A示出了根据本技术的实施例的用于存储数据的方法。
转到图4A,在步骤400中,获得数据存储请求。可以通过从客 户端接收请求来获得数据存储请求。数据存储请求可以指定要存储的 数据。
在步骤402中,使用全局迁移进度索引存储由数据存储请求指定 的数据。
在本技术的一个或多个实施例中,可以通过识别将在存储数据对 象时使用的多个逻辑存储器区域来存储由数据存储请求指定的数据。在物理存储器位置寻址表中指定的每个逻辑存储器区域的逻辑存储 器转换数据可用于获得针对每个逻辑存储器区域的固态存储装置存 储数据。可以使用固态存储装置存储数据将数据存储在固态存储装置 中。例如,如关于图2E所描述的那样,与逻辑存储器区域相关联的 存储器位置转换数据可以包括基地址,该基地址提供其中将存储待存储数据的部分的物理存储器区域的信息,例如地址。待存储数据的部 分可以存储在任何数量的物理存储器区域中以容纳数据。
在本技术的一个或多个实施例中,在将数据存储在物理存储器区 域中之前,可以使用全局迁移进度索引和/或包括在存储器位置转换数 据中的附加信息来重新排列待存储的数据,使得其可以使用全局迁移 进度索引和/或包括在存储器位置转换数据中的附加信息来检索。
在本技术的一个或多个实施例中,数据的一部分和间隙可以存储 在物理存储器区域中,而不基于全局迁移进度索引和/或包括在存储器 位置转换数据中的附加信息来排列。而是,在将数据存储在物理存储 器位置之后,由与物理存储器区域相关联的存储器位置转换数据分别 指定的指定物理存储器区域内的位置和开始和间隙的当前开始和当 前间隙可以被更新为反映在存储数据部分之后的开始和间隙的位置。
在本技术的一个或多个实施例中,可以使用图4B中所示的方法 来存储由数据存储请求指定的数据。
在步骤404中,通知发送数据存储请求的实体已经存储了数据。
该方法可以在步骤404之后结束。
图4B示出了根据本技术的实施例的用于存储数据的部分的方法。
在步骤410中,选择逻辑存储器区域用于存储待存储数据。逻辑 存储器区域可以与待存储数据相关联,如图2A所示。
在步骤412中,识别与所识别的逻辑存储器区域相关联的物理存 储器区域。可以使用如图2B所示的映射和/或如图2D中所示的转换 表来识别物理存储器区域。在不背离本技术的情况下,可以使用识别 物理存储器区域的其他方法。
在步骤414中,选择所识别的物理存储器区域的未写入的物理存 储器区域。如本文所使用的,未写入的物理存储器区域是指在步骤412 中选择的尚未被写入以包括待写入数据的一部分的物理存储器区域。在步骤414的第一次执行时,可以认为在步骤412中识别的所有物理 存储器区域都是未写入的。
在步骤416中,识别所选物理存储器区域内的间隙。可以基于包 括在存储器位置转换数据中的信息来识别间隙及其相关位置,或者可 以基于迁移进度索引的值来计算间隙及其相关位置。
在步骤418中,识别所选物理存储器区域内的开始。在本技术的 一个或多个实施例中,可以使用包括在与所选物理存储器区域相关联 的存储器位置转换数据中的数据来识别开始。在本技术的一个或多个 实施例中,可以基于迁移进度索引的值来确定开始。在本技术的一个或多个实施例中,可以经由图3C中所示的方法识别开始。
在步骤420中,使用(i)所识别的间隙和(ii)所识别的开始将 所述待写入数据的一部分写入所选物理存储器区域。如上所述,由于 磨损均衡的迁移,任何物理存储器区域中的数据可以在物理存储器区 域内从最初存储在物理存储器区域中时被重新布置。物理存储器区域 内的数据可以使用所识别的间隙和所识别的开始重新排列成与物理存储器区域的迁移状态匹配的顺序。如本文所使用的,迁移状态可以 指由于物理存储器区域的磨损均衡的迁移而在物理存储器区域内重 新排列数据的状态。
例如,待存储数据的一部分可以是ABCDE,其中A、B、C、D 和E是该部分的各个数据片段。待写入该部分的物理存储器区域可以 具有2的开始和3的间隙。基于开始,可以将数据重新排列为EABCD。 基于间隙,可以***间隙,导致数据被排列为EAGapBCD。然后可以 将重新排列的数据写入物理存储器位置。
在步骤422中,确定是否已经写入了所有识别的物理存储器区域。 换句话说,如果在步骤412中识别的所有物理存储器区域包括待写入 数据的部分。如果已经写入了所有识别的物理存储器区域,则该方法可以在步骤424之后结束。如果尚未写入所有识别的物理存储器区域, 则该方法可以进行到步骤414。
如上所述,可以迁移数据以用于物理存储器区域的磨损均衡,同 时在物理存储器区域中访问/存储数据。
图5示出了根据本技术的实施例的用于迁移数据的方法。图5所 示的方法可以随时间周期性地或间歇地执行以磨损均衡物理存储器 区域。在迁移周期中,可以使用图5中所示的方法来迁移固态存储装 置的每个物理存储器区域。
在步骤500中,基于迁移进度索引选择物理存储器区域。迁移进 度索引可以指示尚未作为迁移周期的一部分迁移的物理存储器区域。 可以选择尚未迁移的物理存储器区域。
在本技术的一个或多个实施例中,可以使用唯一标识符(即,基 地址)来寻址每个物理存储器区域。换句话说,可以枚举物理存储器 区域。迁移进度索引可以指定一个物理存储器区域的基地址。具有小 于迁移进度索引的基地址的所有物理存储器区域可以被认为尚未作 为迁移周期的一部分被迁移。当迁移物理存储器区域时,可以更新迁 移进度索引,如将关于步骤530所讨论的,以反映物理存储器区域已 经被迁移。
在步骤510中,迁移所选物理存储器区域。在本技术的一个或多 个实施例中,可以通过将包括间隙的物理存储器位置与存储数据片段 的第二物理存储器位置对调来迁移物理存储器区域。第二物理存储器 位置可以基于包括间隙的存储器位置。换句话说,每当迁移数据时,当间隙处于在特定存储器位置中时,该特定存储器位置可用作第二存 储器位置。
在本技术的一个或多个实施例中,基于包括间隙的存储器位置上 的第二物理存储器位置可导致在多个迁移周期期间间隙遵循周期性 模式通过物理存储器区域的存储器位置。该模式可导致间隙在第二次 存储在任何存储器位置之前存储在每个存储器位置中。
在本技术的一个或多个实施例中,第二存储器位置可以是来自存 储间隙的存储器位置的下一个最低存储器位置,并且从最低存储器位 置包裹到最高存储器位置。例如,物理存储器区域可以包括存储器位 置1、2、3、4、5和6。如果存储器位置分别存储A、B、C、Gap、 D和E,则第二存储器位置是3。如果存储器位置分别存储A、Gap、 B、C、D和E,则第二存储器位置是1。如果存储器位置分别存储 Gap、A、B、C、D和E,则第二存储器位置是6。
在不背离技术的情况下,可以使用用于在执行迁移时对调存储器 位置的其他规则和模式。
在步骤520中,更新与所选物理存储器区域相关联的存储器位置 转换数据。如关于图2E所讨论的那样,可以更新当前开始、下一个 开始、当前间隙和下一个间隙,以反映在物理存储器位置上执行迁移之后每个物理存储器位置内的当前位置。
在步骤530中,在间隙在所选物理存储器区域中迁移之后更新迁 移进度数据。如上所述,迁移进度数据可以包括迁移进度索引,其指 示尚未作为迁移周期的一部分迁移的物理存储器位置。迁移所选物理 存储器位置之后,可以更新迁移进度以反映已迁移所选物理存储器位置。
在本技术的一个或多个实施例中,基于由与每个物理存储器区域 相关联的存储器位置转换数据指定的基地址的值来枚举所有物理存 储器区域。当第一次启动迁移周期时,迁移进度索引可指定具有最高 基地址的物理存储器位置。在迁移物理存储器区域之后,可以递减迁 移进度索引以指定具有下一个最低基地址的物理存储器位置。当迁移 进度索引递减到迁移具有最低基地址的物理存储器区域时,可以完成 迁移周期。
在本技术的一个或多个实施例中,可以设置迁移进度索引以指定 具有最高关联基地址的物理存储器区域。
该方法可以在步骤530之后结束。
示例性用例
下面描述的用例场景旨在提供图5中描述的用于数据迁移的方法 的示例并且仅用于说明目的。用例场景基于类似于图1A-1B中所示的 ***,其中数据被写入固态存储器/存储装置的物理存储器区域/从其 读取。本领域技术人员将认识到图5中描述的方法不限于下面描述的 用例场景,而是普遍适用于不同配置、复杂性和大小的各种基于固态 存储器的***。
考虑其中两个物理存储器区域用于存储由六个数据片段A-F组成 的数据的场景。图6A示出了随着在物理存储器区域上执行迁移周期 这些物理存储器区域随时间变化的图。标记为T1-T8的每一行表示时 间点,并且列表示存储在物理存储器区域的每个存储器位置中的数据。 图6B示出了在与图6A的时间相对应的时间上与一个物理存储器区 域相关联的存储器位置转换数据。标记为T1-T8的每一行表示时间点, 并且列分别表示开始、下一个开始、间隙和下一个间隙的值。
如图6A中顶部标记的T0所示,数据片段A-C存储在连续排序的 存储器位置1、2、3和4中,如表的顶行所示。类似地,数据片段 D-F存储在存储器位置5-7中,并且间隙存储在存储器位置8中。如 图6B的顶部标记T0所示,开始(即,图2E中的当前开始)、下一 个开始、间隙(即,图2E中的当前间隙)分别反映与包括存储器位 置1-4的物理存储器区域相关联的存储器位置转换数据的第一存储器位置、第二存储器位置、第四存储器位置和第三存储器位置。
在图6A的第三行中所示的时间T1处,迁移周期部分地完成,其 中在T1处包括存储器位置5-8的物理存储器区域(在该示例的其余部 分中被称为第二物理存储器位置)已经被迁移,而包括存储器位置1-4 的物理存储器区域(在该示例的其余部分中被称为第一物理存储器区 域)尚未迁移。迁移周期对调存储器位置7和8,导致数据片段F和 第二物理存储器区域的间隙交换存储器位置。
在图6A的第四行中所示的时间T2处,已完成第一和第二物理存 储器区域的迁移周期。第一物理存储器区域的迁移周期对调存储器位 置3和4,导致数据片段C和第一物理存储器区域的间隙交换存储器 位置。另外,图6B中所示的间隙(例如,图2E的当前间隙)和下一 个间隙被更新以反映间隙现在位于存储器位置3中并且下一个间隙位 于存储器位置2中。
返回图6A,在第五行所示的时间T3处,部分地完成第二迁移周 期,其中在T3处第二物理存储器区域已经迁移,而第一物理存储器 区域尚未迁移。迁移周期对调存储器位置7和8,导致数据片段E和 第二物理存储器区域的间隙交换存储器位置。
在第六行所示的时间T4处,第一和第二物理存储器区域的第二迁 移周期已经完成。第一物理存储器区域的迁移周期对调存储器位置2 和3,导致数据片段B和第一物理存储器区域的间隙交换存储器位置。 另外,图6B中所示的间隙和下一个间隙被更新以反映间隙现在位于存储器位置2中并且下一个间隙位于存储器位置1中。
返回到图6A,在第六行所示的时间T5处,部分地完成第三迁移 周期,其中在T5处第二物理存储器区域已经迁移,而第一物理存储 器区域尚未迁移。迁移周期对调存储器位置5和6,导致数据片段D 和第二物理存储器区域的间隙交换存储器位置。
在第七行所示的时间T6处,第一和第二物理存储器区域的第二迁 移周期已经完成。第一物理存储器区域的迁移周期对调存储器位置1 和2,导致数据片段A和第一物理存储器区域的间隙交换存储器位置。 另外,图6B中所示的间隙和下一个间隙被更新以反映间隙现在位于 存储器位置1中并且下一个间隙位于存储器位置4中。类似地,已经 更新开始(例如,图2E的当前开始)和下一个开始以反映开始现在 位于存储器位置2中并且下一个开始位于存储器位置3中。
返回图6A,在第七行所示的时间T7处,第四迁移周期部分地完 成,其中在T7处第二物理存储器区域已经迁移,而第一物理存储器 区域尚未迁移。迁移周期对调存储器位置8和5,导致数据片段F和 第二物理存储器区域的间隙交换存储器位置。
在第八行所示的时间T8处,第一和第二物理存储器区域的第四迁 移周期已经完成。第一物理存储器区域的迁移周期对调存储器位置4 和1,导致数据片段C和第一物理存储器区域的间隙交换存储器位置。 另外,图6B中所示的间隙和下一个间隙被更新以反映间隙现在位于存储器位置4中并且下一个间隙位于存储器位置3中。
示例用例在时间T8之后结束。
本技术的实施例可以使固态存储***能够减轻重复写入固态存 储***的固态存储器的影响,否则随着时间的推移会导致固态存储器 的故障。在根据本技术的一个或多个实施例的***中,磨损均衡用于 减少频繁写入的数据片段对各个存储器位置的影响。为了便于磨损均 衡并减轻与磨损均衡相关联的开销,可以将固态存储器的存储容量划分为任意数量的物理存储器区域。每个物理存储器区域可以包括相同 数量的存储器位置。换句话说,每个物理存储区域可以包括相同数量 字节的存储容量。
当执行磨损均衡时,与每个物理存储器区域相关联的数据使得数 据在物理存储器区域中迁移之后能够恢复最初存储的数据。另外,与所有物理存储区域相关联的数据指示作为迁移周期的一部分尚未迁 移的物理存储区域的一部分。与使用逻辑存储器位置到逻辑存储器区 域的直接映射相比,将上述信息存储在区域和聚合区域级别可以显着 减少用于将逻辑存储器区域转换为物理存储器区域的存储量。
例如,与单个物理存储器区域相关联的数据可以包括10个字节 的信息,并且与所有物理存储器区域相关联的数据可以包括2个字节。 因此,可以使用12字节的数据来导出逻辑存储器区域和物理存储器 区域之间的所有映射。相反,前述逻辑和物理区域之间的直接映射可以是更大的数量级。
在本技术的其他实施例中,存储在物理存储器区域中的数据可以 与存储在其他物理存储器区域中的数据交换,以均衡宏区域上的磨损。 可以通过对各个物理存储区执行的读取/写入周期来触发交换。例如, 可以识别高写入速率区域,并且可以将存储在高写入速率区域中的数据与存储在低写入速率区域中的数据交换。在交换数据之后,可以更 新逻辑到物理存储器区域映射以反映交换。更新可以包括交换与区域 相关联的存储器位置转换数据(例如,230,图2E)。
本技术的实施例可以解决具有有限写入周期的固态存储设备的 磨损水平。实施例可以提供磨损均衡方法,其在固态存储设备的物理 存储器区域上分配读/写,同时限制由磨损均衡引起的计算资源开销。
可以使用由数据管理设备的一个或多个处理器执行的指令来实 现本技术的一个或多个实施例。此外,这样的指令可以对应于存储在 一个或多个非暂时性计算机可读介质上的计算机可读指令。
虽然已经关于有限数量的实施例描述了本技术,但是受益于本公 开的本领域技术人员将理解,可以设计出不背离所公开的技术范围的 其他实施例。因此,该技术的范围应仅由所附权利要求限制。

Claims (13)

1.一种数据存储设备,包括:
包括多个物理存储器区域的永久存储装置;和
处理器,其被编程为:
获得对于存储在所述永久存储装置中的数据的数据访问请求;和
响应于所述数据访问请求:
选择所述多个物理存储器区域的与所述数据访问请求相关联的物理存储器区域;
识别所选物理存储器区域内的间隙;
获得全局迁移进度索引的值,其中所述全局迁移进度索引跟踪所述多个物理存储器区域的数据迁移的总数;
基于所述数据迁移的总数、所述多个物理存储器区域中的物理存储器区域的数目以及所述物理存储器区域的存储器位置的数目来计算所述物理存储器区域中的起始位置;
从所述物理存储器区域获得数据;以及
提供所述数据。
2.根据权利要求1所述的数据存储设备,其中所选物理存储器区域中的多个存储器位置中的存储器位置包括所述间隙。
3.根据权利要求2所述的数据存储设备,其中所述间隙是未使用的存储器位置。
4.根据权利要求1所述的数据存储设备,其中所述多个物理存储器区域中的每个物理存储器区域包括与所述多个物理存储器区域中的每个其他物理存储器区域相同数量的存储器位置。
5.根据权利要求1所述的数据存储设备,其中所述数据被存储在所述永久存储装置的固态存储装置中,
其中所述处理器还被编程为:
磨损均衡所述固态存储装置;和
在磨损均衡所述固态存储装置之后:
获得对于存储在所述永久存储装置中的数据的第二数据访问请求;
使用更新的全局迁移进度索引:
从所述永久存储装置中获得所述数据;和
响应于所述第二数据访问请求,提供所获得的数据。
6.根据权利要求5所述的数据存储设备,其中磨损均衡所述固态存储装置包括:
将存储在所述固态存储装置的所选物理存储器区域的存储器位置中的所述间隙迁移到所选物理存储器区域的第二存储器位置;和
更新所述全局迁移进度索引,以指定所述固态存储装置的所选物理存储器区域已经被磨损均衡。
7.根据权利要求6所述的数据存储设备,其中磨损均衡所述固态存储装置还包括:
将存储在所述固态存储装置的第二物理存储器区域的存储器位置中的第二间隙迁移到所述第二物理存储器区域的第二存储器位置;和
更新所述全局迁移进度索引,以指定所述固态存储装置的所选物理存储器区域和所述第二物理存储器区域已经被磨损均衡。
8.根据权利要求6所述的数据存储设备,其中磨损均衡所述固态存储装置还包括:
在迁移所述间隙之后,基于所选物理存储器区域内的所述间隙的相对位置来更新逻辑地址到物理地址映射。
9.根据权利要求8所述的数据存储设备,其中所述逻辑地址到物理地址映射包括:
基地址,其指定所述物理存储器区域的位置;
所述起始位置;和
间隙位置,其指定所述间隙所在的所选物理存储器区域的所述多个存储器位置的存储器位置。
10.根据权利要求1所述的数据存储设备,其中在磨损均衡存储所述数据的所述永久存储装置的固态存储装置时获得来自所述永久存储装置的所述数据。
11.根据权利要求10所述的数据存储设备,其中所述数据是通过以下方式从所述永久存储装置所获得:
读取存储所述数据的数据迁移部分的所述多个物理存储器区域的物理存储器区域;和
基于所述全局迁移进度索引来重新排列所述数据的所述数据迁移部分,以获得所述数据。
12.一种用于操作数据存储设备的方法,所述方法包括:
获得对于存储在永久存储装置的多个物理存储器区域中的数据的数据访问请求;
响应于所述数据访问请求:
选择所述多个物理存储器区域的与所述数据访问请求相关联的物理存储器区域;
识别所选物理存储器区域内的间隙;
获得全局迁移进度索引的值,其中所述全局迁移进度索引跟踪所述多个物理存储器区域的数据迁移的总数;
基于所述数据迁移的总数、所述多个物理存储器区域中的物理存储器区域的数目以及所述物理存储器区域的存储器位置的数目来计算所述物理存储器区域中的起始位置;
从所述物理存储器区域获得数据;以及
提供所述数据。
13.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时使所述处理器执行操作数据存储设备的方法,所述方法包括:
获得对于存储在永久存储装置中的数据的数据访问请求;
响应于所述数据访问请求:
选择多个物理存储器区域的与所述数据访问请求相关联的物理存储器区域;
识别所选物理存储器区域内的间隙;
获得全局迁移进度索引的值,其中所述全局迁移进度索引跟踪所述多个物理存储器区域的数据迁移的总数;
基于所述数据迁移的总数、所述多个物理存储器区域中的物理存储器区域的数目以及所述物理存储器区域的存储器位置的数目来计算所述物理存储器区域中的起始位置;
从所述物理存储器区域获得数据;以及
提供所述数据。
CN201811284499.8A 2017-10-31 2018-10-31 使用利用多间隙进度字段的磨损均衡的方法和*** Active CN109727629B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/799,225 US20190129627A1 (en) 2017-10-31 2017-10-31 Method and system for wear-leveling using a multi-gap progress field
US15/799,225 2017-10-31

Publications (2)

Publication Number Publication Date
CN109727629A CN109727629A (zh) 2019-05-07
CN109727629B true CN109727629B (zh) 2023-09-05

Family

ID=64172198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811284499.8A Active CN109727629B (zh) 2017-10-31 2018-10-31 使用利用多间隙进度字段的磨损均衡的方法和***

Country Status (3)

Country Link
US (1) US20190129627A1 (zh)
EP (1) EP3477463A1 (zh)
CN (1) CN109727629B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585795B2 (en) * 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
CN115113798B (zh) * 2021-03-17 2024-03-19 ***通信集团山东有限公司 一种应用于分布式存储的数据迁移方法、***及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710180B1 (en) * 2016-05-20 2017-07-18 EMC IP Holding Company LLC Method and system for controlling wear level operations in solid state memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
US8055835B2 (en) * 2008-06-23 2011-11-08 International Business Machines Corporation Apparatus, system, and method for migrating wear spots
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US9811456B2 (en) * 2014-11-26 2017-11-07 Advanced Micro Devices, Inc. Reliable wear-leveling for non-volatile memory and method therefor
WO2017048228A1 (en) * 2015-09-14 2017-03-23 Hewlett Packard Enterprise Development Lp Memory location remapping and wear-levelling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710180B1 (en) * 2016-05-20 2017-07-18 EMC IP Holding Company LLC Method and system for controlling wear level operations in solid state memory

Also Published As

Publication number Publication date
CN109727629A (zh) 2019-05-07
US20190129627A1 (en) 2019-05-02
EP3477463A1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
CN110678836B (zh) 用于键值存储的持久性存储器
EP3217294B1 (en) File access method and apparatus and storage device
CN109144887B (zh) 存储器***及控制非易失性存储器的控制方法
US7711892B2 (en) Flash memory allocation for improved performance and endurance
JP2021114038A (ja) メモリシステムおよび制御方法
CN107180092B (zh) 一种文件***的控制方法、装置及终端
US10558561B2 (en) Systems and methods for storage metadata management
CN107784121B (zh) 一种基于非易失内存的日志文件***的小写优化方法
CN111679795B (zh) 无锁并发io处理方法及其装置
JP7358594B2 (ja) メモリシステム
US20170168928A9 (en) System and method for efficient address translation of flash memory device
CN110096221B (zh) 存储器***及其控制方法
JP7381678B2 (ja) メモリシステム
JP7392080B2 (ja) メモリシステム
JP2021033848A (ja) メモリシステムおよび制御方法
JP4551328B2 (ja) 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置
CN109727629B (zh) 使用利用多间隙进度字段的磨损均衡的方法和***
KR20180044451A (ko) 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
WO2018186455A1 (ja) 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム
JP2017224112A (ja) メモリシステムおよびメモリ管理装置
US10416904B1 (en) Method and system for recovering storage object records in solid state memory
CN111435285B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN116501243A (zh) 存储控制器及其操作方法、存储装置的操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant