CN103562842B - 用于存储设备的用低预留空间实现低写入放大的方法 - Google Patents

用于存储设备的用低预留空间实现低写入放大的方法 Download PDF

Info

Publication number
CN103562842B
CN103562842B CN201280024279.6A CN201280024279A CN103562842B CN 103562842 B CN103562842 B CN 103562842B CN 201280024279 A CN201280024279 A CN 201280024279A CN 103562842 B CN103562842 B CN 103562842B
Authority
CN
China
Prior art keywords
ssd
logical address
data
block
region
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
CN201280024279.6A
Other languages
English (en)
Other versions
CN103562842A (zh
Inventor
L·阮
P·尼奥斯
L·汤-萨特
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN103562842A publication Critical patent/CN103562842A/zh
Application granted granted Critical
Publication of CN103562842B publication Critical patent/CN103562842B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

一种固态硬盘(SSD)包括SSD控制模块,被配置为确定与关联于所述SSD的相应的逻辑地址中所存储的数据多长时间被更新一次所对应的频率并且根据所述频率形成所述逻辑地址的群组;以及存储器控制模块,被配置为基于所述群组将所述数据重新写入至SSD存储区的区块中的物理地址。

Description

用于存储设备的用低预留空间实现低写入放大的方法
相关申请的交叉引用
本申请要求于2012年5月2日提交的美国专利申请第13/461,899号的优先权以及于2011年5月24日提交的美国临时申请第61/489,628号的权益。通过引用上述申请的全文而将上述申请的公开并入于此。
技术领域
本公开涉及使得存储设备中的写入放大最小化。
背景技术
这里所提供的背景技术的描述是出于总体上呈现本公开的背景的目的。当前署名的发明人的工作(到该背景技术中所描述的工作的程度)以及在提交时可能无法以其它方式作为现有技术的衡量的说明书的各方面,既非明确地也非隐含地承认是本公开的现有技术。
诸如固态硬盘(SSD)之类的存储设备可以包括一个或多个闪存设备。仅作为示例,闪存设备可以包括基于NAND的闪存。通常,闪存的存储区按区块进行布置,其中每个区块被划分为可寻址的页面。在区块内数据以逐个页面为基础而写入并存储在闪存之中。相反地,为了重写或擦除数据,整个相对应的区块都被擦除。
当在特定页面中存储的数据被更新时,区块中所有的有效数据(即,对没有改变或更新的数据进行存储的任何页面)都需要被擦除并重写。无效数据(即,对已经被改变或更新的数据进行存储并因此已经在其它地方被重写的页面)可以简单地被擦除。例如,向存储设备进行写入的主机将数据写入到诸如逻辑块地址(LBA)之类的逻辑地址。相反地,存储设备将该数据映射并写入到对应于该逻辑地址的物理地址。当存储设备需要在特定物理地址中(即,区块中的一个或多个页面中)对数据进行更新时,整个区块都被擦除并且被写入到相同或不同的区块,但是相对应的逻辑地址仍然保持相同。因此,包括该存储设备的系统执行比主机更大数目的写入操作。
换句话说,物理写入的数目大于逻辑写入的数目。物理写入的数目与逻辑写入的数目之比可以被称之为写入放大(write amplification,WA)。相对高的写入放大(例如,5或更大的WA)在存储设备上导致更多的磨损,并且因此缩短存储设备的寿命。相反地,相对低的写入放大(例如,接近1的WA)对存储设备的性能和寿命有所改善。
存储设备可以实施磨损均衡(wear-leveling)和预留空间(overprovisioning)以使得写入放大最小化。例如,预留空间是指在存储设备中提供比与主机相关联的逻辑地址(即,主机的逻辑容量)相对应的数目更大数目的物理位置。换句话说,存储设备包括比主机所包括的逻辑位置更多的物理位置。剩余的物理位置为存储设备提供了额外的物理容量。存储设备的额外物理容量与存储设备的总体物理容量(和主机的逻辑容量)之比被称作预留空间比(OPR)。例如,如果存储设备具有100吉字节(GB)的总体物理容量和75GB的逻辑容量,则OPR为25:100或25%。
存储设备的OPR可以与存储设备的写入放大直接相关。例如,当闪存数据的单个页面中所存储的数据被更新时,该数据能够被写入该闪存的不同区块中的额外物理位置中的空页面而不是擦除当前存储数据的整个区块。存储数据的原始页面可以简单地被标记为陈旧或无效,而避免整个区块被完全重写。这能够针对附加的写入进行重复直至整个区块充满无效数据或者无效数据与有效数据之比大于阈值,和/或根据清理和融合操作(例如,垃圾回收)进行重复。因此,由于能够避免附加的重写的数目,所以随着存储设备的OPR增大,存储设备的写入放大减小。仅作为示例,10%的OPR可以对应于大约5的写入放大,25%的OPR可以对应于大约2的写入放大,以及50%的OPR可以对应于大约1的写入放大。
发明内容
一种固态硬盘(SSD)包括SSD控制模块,被配置为确定与关联于所述SSD的相应的逻辑地址中所存储的数据多长时间被更新一次所对应的频率并且根据所述频率形成所述逻辑地址的群组;以及存储器控制模块,被配置为基于所述群组将所述数据重新写入至SSD存储区的区块中的物理地址。
一种操作固态硬盘(SSD)的方法,所述方法包括确定与关联于所述SSD的相应的逻辑地址中所存储的数据多长时间被更新一次所对应的频率,根据所述频率形成所述逻辑地址的群组,以及基于所述群组将所述数据重新写入至SSD存储区的区块中的物理地址。
本公开另外的可应用领域将从详细的说明书、权利要求和附图变得显而易见。详细的说明书和具体示例仅旨在出于说明性的目的而并非旨在对本公开的范围进行限制。
附图说明
本发明将从详细的说明书和附图变得更为全面地理解,其中:
图1是根据本公开的原理的存储驱动系统的功能框图;
图2是根据本公开的原理的固态硬盘控制模块的功能框图;
图3A和图3B图示了根据本公开的原理的逻辑地址区域列表的示例;
图4A和图4B图示了在并未根据区域列表重新安排数据的情况下存储数据的闪存区块;
图5A和图5B图示了根据区域列表存储数据的闪存区块;以及
图6图示了根据本公开的原理的固态硬盘控制方法。
具体实施方式
根据本公开的系统减小了存储设备(例如,固态硬盘或SSD,包括基于NAND的闪存)的写入放大(WA)同时也减小了预留空间。仅作为示例,在实现相对低的1.1的写入放大时,该存储设备可以向主机提供一太字节(TB)的逻辑容量同时仅包括16吉字节(GB)的额外物理容量,这对应于的预留空间比(OPR)。
该系统向存储设备中更为动态的(即,被频繁写入和重写的)逻辑区分配更多的额外物理空间。相反地,该系统向存储设备中更为静态的(即,不频繁重写的)的逻辑区分配较少的额外物理空间。结果,OPR可能对于更为动态的逻辑区而言相对高,并且对于相对静态的逻辑区而言相对低,这可以不需要明显的预留空间并且因此对于写入放大并无明显贡献。该系统可以基于主机的使用模式对每个逻辑区动态地调节OPR。例如,该使用模式可以基于主机操作系统、主机应用以及与特定逻辑区的使用相关联的其它因素而变化。
虽然本公开关于SSD对系统进行了描述,但是该系统的原理也可以利用其它存储设备诸如硬盘(HHD)来实施,以改善写入性能,减少清理/融合开销,并且降低与预留空间相关联的成本。
现在参考图1,存储驱动系统100包括固态硬盘(SSD)104,其经由主机接口112与主机108进行通信。主机接口112(例如,经由写入操作)从主机108接收要在SSD104上存储的数据,并且将在SSD 104上存储的数据(例如,经由读取操作)传送至主机108。
SSD 104包括存储器控制模块120、SSD控制模块124以及诸如闪存阵列128的SSD存储区。在写入操作期间,存储器控制模块120将数据从主机108写入闪存阵列128。例如,写入操作可以将数据写入诸如逻辑块地址(LBA)之类的逻辑地址。存储器控制模块120将每个LBA映射到闪存阵列中的物理地址,并且将数据写入到相对应的物理地址。仅作为示例,易失性存储器132、非易失性存储器136或(例如存储器控制模块120内的存储器)的其它存储器可以对将每个LBA与物理地址相关联的映射信息进行存储。相反地,在读取操作期间,主机108从LBA请求数据并且存储器控制模块120从闪存阵列128中相对应的物理地址读取数据。SSD104中诸如主机接口112、存储器控制模块120、SSD控制模块124、易失性存储器132和非易失性存储器136的一个或多个组件可以位于片上系统(SOC)上。
闪存阵列128可以包括一个或多个闪存设备140-1、140-2、...和140-n,它们共同称之为闪存设备140。每个闪存设备140在多个区块中存储数据,并且每个区块包括多个可寻址页面。每个可寻址页面是对应于物理地址的物理存储器位置,该物理地址进而与LBA相关联。因此,被写入主机108的或被主机108读取的每个LBA对应于闪存设备之一中根据可寻址页面之一进行访问的物理位置。仅作为示例,闪存设备140可以实施基于NAND的闪存单元。
SSD控制模块124根据本公开的原理实施预留空间分配。SSD控制模块124确定哪些LBA是相对静态的而哪些LBA是相对动态的。换句话说,相对静态的LBA更新(例如,被写入和重写)得更不频繁,而相对动态的LBA则更新得更为频繁。仅作为示例,相对静态的LBA可以对应于诸如程序或应用文件以及照片、音乐或其它多媒体文件之类的数据。相反地,相对动态的LBA可以对应于被用户频繁更新的数据。
SSD控制模块124可以维护根据更新频率而排列的所有LBA的列表。该列表可以在正常操作期间在易失性存储器132中存储并且周期性地在非易失性存储器136中存储以避免数据丢失。该列表可以将LBA安排到不同区域之中,其中每个区域对应于不同的更新频率。每个区域包括多个LBA。仅作为示例,该列表可以包括10个区域,其中每个区域包括10%的LBA。或者,该列表可以包括100个区域,其中每个区域包括1%的LBA。SSD控制模块124基于相对应区域对LBA进行重新排列。仅作为示例,SSD控制模块124可以包括执行非易失性存储器136上所存储的固件的一个或多个处理器。
现在参考图2,SSD控制模块200的示例包括LBA区域控制模块204和最近最少使用(LRU)模块208。LBA区域控制模块204基于每个LBA多长时间被主机108更新一次而确定哪些LBA处于每个区域之中。当SSD控制模块200将LBA重新映射到闪存阵列128中的相对应物理地址时,SSD控制模块200根据区域对闪存阵列128的区块内的LBA进行排列。
例如,SSD控制模块200可以在垃圾回收或其它维护过程期间定期指示存储器控制模块212基于LBA到物理区域的映射来重新排列闪存阵列128中所存储的任意有效数据。重新排列数据可以包括将数据的一个或多个第一区块中的部分(即,对应于有效数据的部分)重新写入到第二区块并且擦除第一区块的数据。因此,在闪存阵列128中的特定物理位置中存储的有效数据保持相同的LBA,但是该LBA可以被映射到新的物理位置。
LBA区域控制模块204例如基于从LRU模块208所接收的信息来确定哪个LBA被分配至哪个区域。LRU模块208可以实施LRU引擎或算法以基于每个LBA最近如何被最后使用而在有序LRU列表中对LBA进行排列。例如,处于LRU列表顶端的LBA可以对应于最近最少被写入的LBA,而处于LRU列表底部的LBA可以对应于最近经常被写入的LBA。仅作为示例,当LBA被写入时,该LBA可以下降至LRU列表的底部。以这种方式,最近最多写入的LBA将趋向于LRU列表的底部,并且对应于相对动态的LBA。相反地,最近最少写入的LBA将趋向于LRU列表的顶端,并且对应于相对静态的LBA。LRU模块208可以将LRU列表存储在存储器216中和/或将LRU列表传输至LBA区域控制模块204。仅作为示例,存储器216可以对应于图1所示的易失性存储器132和/或非易失性存储器136。
LBA区域控制模块204可以基于从LRU模块208所接收的LRU列表来维护区域列表。例如,区域列表可以包括10个区域,每个区域包括10%的LBA。仅作为示例,LBA中的对应于前10%的最近最少写入的LBA(即,处于LRU列表顶端的10%的LBA)可以被分配至区域1。接下来10%的最近最少写入的LBA可以被分配至区域2。相反地,最后10%(即处于LRU列表底部的10%的LBA)可以被分配至区域10。
图3A中示出了包括10个区域的区域列表300的示例。图3B示出了包括100个区域的区域列表320的示例。能够认识到,可以使用任意数目的区域。例如,区域列表可以仅包括两个区域,其中一个区域表示静态区域而另一个区域则表示动态区域。另外,LBA可以以任意比例被分配至区域。换句话说,每个区域并非必然要包括相同数目的LBA。例如,如果区域列表仅包括两个区域,则表示静态区域的第一区域可以包括75%的LBA。相反地,表示动态区域的第二区域可以包括25%的LBA。
现在参考图4A和4B,示出了在并未根据区域列表对数据进行重新排列的情况下存储数据的闪存区块400、404、408和412。为了简单,仅使用了两个区域(区域1和区域2),但是可以使用任意数目的区域。类似地,虽然仅示出了均具有九个可寻址页面的四个区块,但是可以使用具有任意数目的可寻址页面的任意数目的区块。
如图4A所示,区块400可以存储包括1A、1B和1C的区域1数据,以及最初包括2A和2B的区域2数据。区域2数据随后可以被更新并且因此被重写为2A’和2B’。相应地,对应于2A和2B的页面存储无效数据。如果区域2数据被更新并再次重写为2A”和2B”,则对应于2A’和2B’的页面也存储无效数据。因此,在区域2数据的若干次重写之后,区块400就会满但是却包括四个页面的无效数据。
类似地,区块404可以存储包括1D、1E和1F的区域1数据,以及最初包括2C、2D和2E的区域2数据。区域2数据随后可以被更新并重写为2C’、2D’和2E’,它们分别对应于与2C、2D和2E相同的逻辑地址。因此,对应于2C、2D和2E的页面存储无效数据。相应地,在区域2数据的一次或多次重写之后,区块404会满但是包括三个页面的无效数据。区块408和412是空的,并且可以被用作针对区块400和404的预留空间。换句话说,如果在清理/融合操作之前对区块400和404中的任何区域2数据执行额外的重写,则区域2数据会被重写至区块408和412同时仍然存储区块400和404中有效的区域1数据和无效的区域2数据。
现在参考图4B,区块400和404中所存储的有效数据可以被重写至区块408和412,并且区块400和404被完全擦除。因此,即使是区域1数据和有效的区域2数据也被擦除和重写。然而,针对区域2数据的后续更新将利用新的区域2数据和无效的区域2数据相对快速地填充区块408和412。这样,将需要额外的预留空间来容纳该重写,并且将可能需要多个区块来容纳预留空间。另外,尽管区域1数据是静态且有效的,但是区域1数据的每个页面也在经更新的区域2数据每次填充区块之一时被擦除和重写。
虽然如所示出的,来自两个区块的数据被重写至两个不同的区块,但是来自两个或更多区块的数据能够被组合在单个区块中或者为了进行最优存储而以其它方式进行重写排列。
现在参考图5A和5B,示出了根据区域列表存储数据的闪存区块500、504、508和512。如图5A所示,区块500可以存储包括1A、1B和1C的区域1数据,以及最初包括2A和2B的区域2数据。区域2数据随后可以被更新并且因此被重写为2A’和2B’。相应地,对应于2A和2B的页面存储无效数据。如果区域2数据被更新并再次重写为2A”和2B”,则对应于2A’和2B’的页面也存储无效数据。因此,在区域2数据的若干次重写之后,区块500就会满但是却包括四个页面的无效数据。
类似地,区块504可以存储包括1D、1E和1F的区域1数据,以及最初包括2C、2D和2E的区域2数据。区域2数据随后可以被更新并重写为2C’、2D’和2E’。因此,对应于2C、2D和2E的页面存储无效数据。相应地,在区域2数据的一次或多次重写之后,区块504就会满但是包括三个页面的无效数据。区块508和512是空的,并且可以被用作针对区块500和504的预留空间。换句话说,如果在清理/融合操作之前对区块500和504中的任何区域2数据执行额外的重写,则区域2数据会被重写至区块508和512同时仍然存储区块500和504中有效的区域1数据和无效的区域2数据。
现在参考图5B,区块500和504中所存储的有效数据可以被重写至区块508和512,并且区块500被504被完全擦除。然而,与图4A和4B中所示的示例相比,该数据根据区域列表而被重新排列。例如,区域1数据基于如图2和3所示的LRU列表和区域列表在区块508中被存储在一起。相反地,区域2数据基于LRU列表和区域列表在区块512中被存储在一起。
因此,区块508中存储的静态区域1数据与对区域1数据和区域2数据二者进行存储的区块相比可以持续避免重写和预留空间更大部分的时间。例如,某些类型的区域1数据可能永不会更新。在其它区块的后续写入操作或重写期间,额外的区域1数据可以被写入区块508中的空页面。然而,能够理解,针对区块508的预留空间有所减少。更具体地,由于在区块508中存储的数据仅是静态的区域1数据,更新是不频繁的。因此,区块508明显不太可能被无效数据所填充并且需要预留的存储空间。
相反地,在区块512中存储的动态区域2数据可能被更为频繁地更新。因此,区块512更可能被无效数据所填充并且需要预留的存储空间。然而,由于区块508不可能需要预留空间,所以可以仅需要空的区块500和504之一来为区块512提供预留空间和/或存储动态区域2数据的额外区块。因此,可以提供较少的额外容量并且使得OPR最小化,以及将预留的存储空间更多地分配给动态区域中的LBA。例如,OPR可能小于5%。仅作为示例,OPR可以大约为1.5%并且实现大约1.1的写入放大。
现在参考图6,在604开始SSD控制方法600。在608,方法600确定多频繁地使用每个逻辑地址。例如,方法600针对逻辑地址生成并维护LRU列表。在612,方法600基于LRU列表在不同区域中安排逻辑地址。每个区域对应于相应逻辑地址更新(即,被写入)得有多频繁。例如,方法600针对逻辑地址生成并维护区域列表。在616,方法600对闪存的多个区块执行清理/融合或其它维护操作。在620,该方法600基于该区域列表对多个区块中所存储的数据进行重写。例如,方法600将对应于相同区域中的逻辑地址的数据存储到相同的区块。该方法600在624结束。
以上描述在本质仅是说明性的并且不旨在对本公开、其应用或使用进行限制。本公开的宽泛教导能够以各种形式来实施。因此,虽然本公开包括特定示例,但是因为其它修改形式通过研习附图、说明书和随后的权利要求而将是显而易见,所以本公开的实际范围并不应当被如此限制。出于清楚的原因,将在附图中使用相同的附图标记来标示相似要素。如这里所使用的,短语A、B和C中的至少一个应当被理解为表示使用非排他性逻辑或的逻辑(A或B或C)。应当理解的是,方法内的一个或多个步骤可以以不同顺序(或同时)执行而并不改变本公开的原理。
如这里所使用的,术语模块可以是指:作为应用特定集成电路(ASIC)的一部分或包括应用特定集成电路(ASIC)、电子电路、组合逻辑电路、现场可编程门阵列(FPGA)、执行代码的处理器(共享、专用或分组)、提供所描述功能的其它适当硬件组件;或者是诸如片上系统中的以上一些或所有的组合。术语模块可以包括存储由处理器所执行的代码的存储器(共享、专用或分组)。
如以上所使用的,术语代码可以包括软件、固件和/或微代码,并且可以是指程序、例程、函数、类和/或对象。如以上所使用的,术语共享意味着来自多个模块的一些或所有代码可以使用单个(共享)处理器来执行。此外,来自多个模块的一些或所有代码可以由单个(共享)存储器进行存储。如以上所使用的,术语群组意味着来自单个模块的一些或所有代码可以使用处理器的群组来执行。此外,来自单个模块的一些或所有代码可以使用存储器的群组进行存储。
这里所描述的装置和方法可以由一个或多个处理器所执行的一个或多个计算机程序来实施。计算机程序包括在非瞬时的有形计算机可读介质上存储的处理器可执行指令。计算机程序还可以包括所存储的数据。非瞬时的有形计算机可读介质的非限制性示例是非易失性存储器、磁性存储和光学存储。

Claims (14)

1.一种固态硬盘SSD,包括:
SSD控制模块,被配置为确定与关联于所述SSD的相应的逻辑地址中所存储的数据多长时间被更新一次所对应的频率并且根据所述频率形成所述逻辑地址的群组,其中形成所述群组包括:
生成所述逻辑地址的最近最少使用LRU列表,其中所述LRU列表指示所述逻辑地址中的每个逻辑地址中所存储的所述数据多长时间被更新一次,
根据相应的更新频率,将所述逻辑地址的不同范围排列到多个区域中,使得所述多个区域中的每个区域包括具有相应的更新频率的所述逻辑地址的不同范围并且所述多个区域中的每个区域包括所述逻辑地址中的至少一个,其中所述相应的更新频率中的每个对应于在所述逻辑地址的所述不同范围中的相应范围中的所述数据多长时间被更新一次,以及
基于所述LRU列表生成包括所述多个区域的区域列表;以及
存储器控制模块,被配置为基于所述群组将所述数据重新写入至SSD存储区的区块中的物理地址,其中为了重新写入所述数据,所述存储器控制模块还被配置为使用所述区域列表,
将与第一区域相关联的第一逻辑地址中的第一数据从所述SSD存储区的第一区块重新写入到所述SSD存储区的第二区块,
将与所述第一区域相关联的第二逻辑地址中的第二数据从所述SSD存储区的第三区块重新写入到所述SSD存储区的所述第二区块,以及
将与第二区域相关联的第三逻辑地址中的第三数据从所述SSD存储区的所述第一区块重新写入到所述SSD存储区的第四区块。
2.根据权利要求1所述的SSD,其中所述SSD控制模块包括:
LRU模块,被配置为生成所述LRU列表;以及
区域控制模块,被配置为生成所述区域列表。
3.根据权利要求1所述的SSD,其中所述逻辑地址包括逻辑区块地址LBA。
4.根据权利要求1所述的SSD,其中所述SSD存储区包括闪存阵列。
5.根据权利要求1所述的SSD,其中所述SSD控制模块包括被配置为执行固件的处理器。
6.根据权利要求1所述的SSD,其中所述LRU列表和所述区域列表在易失性存储器和非易失性存储器中的至少一个之中存储。
7.根据权利要求1所述的SSD,其中:
与所述SSD相关联的物理地址的第一数目大于所述逻辑地址的第二数目;以及
所述第一数目和所述第二数目之差与所述第二数目之比小于5%。
8.根据权利要求7所述的SSD,其中与所述SSD相关联的写入放大大约是1.1。
9.一种操作固态硬盘SSD的方法,所述方法包括:
确定与关联于所述SSD的相应的逻辑地址中所存储的数据多长时间被更新一次所对应的频率;
根据所述频率形成所述逻辑地址的群组,其中所述形成所述群组包括:
生成与所述SSD相关联的逻辑地址的最近最少使用LRU列表,其中所述LRU列表指示所述逻辑地址中的每个逻辑地址中所存储的所述数据多长时间被更新一次,
根据相应的更新频率,将所述逻辑地址的不同范围排列到多个区域中,使得所述多个区域中的每个区域包括具有相应的更新频率的所述逻辑地址的不同范围并且所述多个区域中的每个区域包括所述逻辑地址中的至少一个,其中所述相应的更新频率中的每个对应于在所述逻辑地址的所述不同范围中的相应范围中的所述数据多长时间被更新一次;以及
基于所述LRU列表生成包括所述多个区域的区域列表;以及
基于所述群组将所述数据重新写入至SSD存储区的区块中的物理地址,其中重新写入所述数据包括:使用所述区域列表,
将与第一区域相关联的第一逻辑地址中的第一数据从所述SSD存储区的第一区块重新写入到所述SSD存储区的第二区块,
将与所述第一区域相关联的第二逻辑地址中的第二数据从所述SSD存储区的第三区块重新写入到所述SSD存储区的所述第二区块,以及
将与第二区域相关联的第三逻辑地址中的第三数据从所述SSD存储区的所述第一区块重新写入到所述SSD存储区的第四区块。
10.根据权利要求9所述的方法,其中所述逻辑地址包括逻辑区块地址LBA。
11.根据权利要求9所述的方法,其中所述SSD存储区包括闪存阵列。
12.根据权利要求9所述的方法,其中所述LRU列表和所述区域列表在易失性存储器和非易失性存储器中的至少一个之中存储。
13.根据权利要求9所述的方法,其中:
与所述SSD相关联的物理地址的第一数目大于所述逻辑地址的第二数目;以及
所述第一数目和所述第二数目之差与所述第二数目之比小于5%。
14.根据权利要求13所述的方法,其中与所述SSD相关联的写入放大大约是1.1。
CN201280024279.6A 2011-05-24 2012-05-02 用于存储设备的用低预留空间实现低写入放大的方法 Active CN103562842B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161489628P 2011-05-24 2011-05-24
US61/489,628 2011-05-24
PCT/US2012/036070 WO2012161933A1 (en) 2011-05-24 2012-05-02 Method for storage devices to achieve low write amplification with low over provision
US13/461,899 US9678676B2 (en) 2011-05-24 2012-05-02 Method for storage devices to achieve low write amplification with low over provision
US13/461,899 2012-05-02

Publications (2)

Publication Number Publication Date
CN103562842A CN103562842A (zh) 2014-02-05
CN103562842B true CN103562842B (zh) 2018-09-14

Family

ID=46177486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280024279.6A Active CN103562842B (zh) 2011-05-24 2012-05-02 用于存储设备的用低预留空间实现低写入放大的方法

Country Status (6)

Country Link
US (1) US9678676B2 (zh)
EP (1) EP2715510B1 (zh)
JP (1) JP6016137B2 (zh)
KR (1) KR101982251B1 (zh)
CN (1) CN103562842B (zh)
WO (1) WO2012161933A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501392B1 (en) * 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US10803970B2 (en) 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
US8699175B1 (en) * 2012-07-20 2014-04-15 Western Digital Technologies, Inc. Disk drive mapping low frequency write addresses to circular buffer write zone
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9542306B2 (en) 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
KR102098697B1 (ko) 2013-03-15 2020-04-08 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법
US20140359196A1 (en) * 2013-05-31 2014-12-04 Daniel J. Ragland On-the-fly performance adjustment for solid state storage devices
CN104850500B (zh) * 2014-02-14 2019-06-07 腾讯科技(深圳)有限公司 用于数据存储的数据处理方法和装置
US10025530B2 (en) 2014-09-29 2018-07-17 Western Digital Technologies, Inc. Optimized garbage collection for solid-state storage devices
US9792069B2 (en) 2014-09-29 2017-10-17 Western Digital Technologies, Inc. Offline deduplication for solid-state storage devices
US9129628B1 (en) 2014-10-23 2015-09-08 Western Digital Technologies, Inc. Data management for data storage device with different track density regions
US10691531B2 (en) * 2014-12-04 2020-06-23 Western Digital Technologies, Inc. Systems and methods for multi-zone data tiering for endurance extension in solid state drives
US9678677B2 (en) * 2014-12-09 2017-06-13 Intel Corporation Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device
CN104461397A (zh) * 2014-12-19 2015-03-25 上海新储集成电路有限公司 一种固态硬盘及其读写方法
US9760281B2 (en) * 2015-03-27 2017-09-12 Intel Corporation Sequential write stream management
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
CN105335100B (zh) 2015-09-29 2018-09-21 华为技术有限公司 一种数据处理方法、装置及闪存设备
CN105159622B (zh) * 2015-10-22 2016-10-12 湖南国科微电子股份有限公司 一种减小ssd读写io时延的方法与系统
CN106897022B (zh) * 2015-12-17 2019-05-31 腾讯科技(深圳)有限公司 一种管理存储设备的方法及装置
US10592110B2 (en) * 2016-02-19 2020-03-17 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
US10403357B2 (en) * 2017-09-18 2019-09-03 Nxp Usa, Inc. Resistive non-volatile memory and a method for sensing a memory cell in a resistive non-volatile memory
JP6545876B2 (ja) * 2018-08-27 2019-07-17 東芝メモリ株式会社 メモリシステム
US11042490B2 (en) * 2018-11-15 2021-06-22 Micron Technology, Inc. Address obfuscation for memory
US11163482B2 (en) 2019-06-26 2021-11-02 International Business Machines Corporation Dynamic performance-class adjustment for storage drives
US11049570B2 (en) 2019-06-26 2021-06-29 International Business Machines Corporation Dynamic writes-per-day adjustment for storage drives
US11137915B2 (en) 2019-06-27 2021-10-05 International Business Machines Corporation Dynamic logical storage capacity adjustment for storage drives
CN110442555B (zh) * 2019-07-26 2021-08-31 华中科技大学 一种选择性预留空间的减少碎片的方法及系统
US11593258B2 (en) 2019-11-26 2023-02-28 Micron Technology, Inc. Enhanced filesystem support for zone namespace memory
US11379117B2 (en) * 2020-06-19 2022-07-05 Western Digital Technologies, Inc. Storage system and method for using host-assisted variable zone speed grade modes to minimize overprovisioning
CN113311992B (zh) * 2020-08-31 2024-01-23 阿里巴巴集团控股有限公司 固态硬盘预留空间的动态调整方法及装置
US11436138B2 (en) * 2020-10-21 2022-09-06 EMC IP Holding Company LLC Adaptive endurance tuning of solid-state storage system
US20240302971A1 (en) * 2023-03-06 2024-09-12 Dell Products L.P. System and method of preparing a solid state drive for reuse

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719099A (zh) * 2009-11-26 2010-06-02 成都市华为赛门铁克科技有限公司 减小固态硬盘写入放大的方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
WO2007073536A2 (en) 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with memory allocation for a directly mapped file storage system
JP4686358B2 (ja) * 2005-12-26 2011-05-25 ジヤトコ株式会社 フラッシュメモリを備えた制御装置
JP2008310685A (ja) * 2007-06-15 2008-12-25 Hitachi Ltd 冗長性を維持した性能最適化を行うストレージシステム
KR101027112B1 (ko) * 2008-06-30 2011-04-05 한국산업기술대학교산학협력단 플래시 메모리의 클러스터링 장치 및 그 클러스터링 방법
US8180995B2 (en) * 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
US8463983B2 (en) 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US8521972B1 (en) * 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8621328B2 (en) * 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719099A (zh) * 2009-11-26 2010-06-02 成都市华为赛门铁克科技有限公司 减小固态硬盘写入放大的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
An Adaptive Striping Architecture for Flash Memory Storage Systems of Embedded Systems;Li-Pin Chang;《Proceedings of the Eighth IEEE Real-Time and Embedded Technology and Applications Symposium》;20020924;第1-10页 *

Also Published As

Publication number Publication date
WO2012161933A1 (en) 2012-11-29
US20120303873A1 (en) 2012-11-29
EP2715510A1 (en) 2014-04-09
KR101982251B1 (ko) 2019-05-24
CN103562842A (zh) 2014-02-05
US9678676B2 (en) 2017-06-13
JP2014519112A (ja) 2014-08-07
EP2715510B1 (en) 2018-05-02
JP6016137B2 (ja) 2016-10-26
KR20140035426A (ko) 2014-03-21

Similar Documents

Publication Publication Date Title
CN103562842B (zh) 用于存储设备的用低预留空间实现低写入放大的方法
US10761780B2 (en) Memory system
CN111352581B (zh) 在存储设备中写入数据的方法、存储设备、和存储系统
US9507711B1 (en) Hierarchical FTL mapping optimized for workload
US7594067B2 (en) Enhanced data access in a storage device
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
US9367451B2 (en) Storage device management device and method for managing storage device
US8239619B2 (en) Method and apparatus for high-speed byte-access in block-based flash memory
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
US20130103889A1 (en) Page-buffer management of non-volatile memory-based mass storage devices
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US20070094445A1 (en) Method to enable fast disk caching and efficient operations on solid state disks
US20100082917A1 (en) Solid state storage system and method of controlling solid state storage system using a multi-plane method and an interleaving method
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
KR20090081657A (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US8892816B1 (en) System and method for writing data to a memory
CN103294607A (zh) 一种存储管理方法
KR20050079991A (ko) 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR100970537B1 (ko) Ssd 관리 장치 및 방법
US10810132B1 (en) Object based extent mapping for flash memory
Phoenix High-Performance Low-Overhead Stochastic Wear Leveling of Flash Memory By Comparing Age of a Block with Age of a Randomly Selected Block
CN116501655A (zh) 将存储器块解除分配的存储控制器及其操作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200429

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200429

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200429

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.