CN105573917A - 用于选择预留空间量的技术 - Google Patents

用于选择预留空间量的技术 Download PDF

Info

Publication number
CN105573917A
CN105573917A CN201510624805.8A CN201510624805A CN105573917A CN 105573917 A CN105573917 A CN 105573917A CN 201510624805 A CN201510624805 A CN 201510624805A CN 105573917 A CN105573917 A CN 105573917A
Authority
CN
China
Prior art keywords
headspace
function
amount
space
cost
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510624805.8A
Other languages
English (en)
Other versions
CN105573917B (zh
Inventor
张延�
张帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
Hynix Semiconductor Inc
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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN105573917A publication Critical patent/CN105573917A/zh
Application granted granted Critical
Publication of CN105573917B publication Critical patent/CN105573917B/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/0608Saving storage space on 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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]

Landscapes

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

Abstract

本发明提供一种用于选择预留空间量的技术。获取成本函数,其中,与固态储存器件关联的预留空间量是成本函数的输入,以及用于给定预留空间量的成本是成本函数的输出。使用成本函数来确定预留空间量;以及用于固态储存器件的预留空间量被设置为确定量。

Description

用于选择预留空间量的技术
相关申请的交叉引用
本申请要求2014年9月26日提交的名称为“COSTEFFECTIVEOVER-PROVISIONINGADJUSTMENTSCHEME(成本效益预留空间调整方案)”的美国临时专利申请No.62/056,292以及2015年9月10日提交的名称为“TECHNIQUESFORSELECTINGAMOUNTSOFOVER-PROVISIONING(用于选择预留空间量的技术)”的美国专利申请No.14/850,587的优先权,其通过引用合并于此用于所有目的。
背景技术
预留空间(over-provisioning)是其中实际储存空间量或物理储存空间量超过一些所宣称的储存空间量或用户逻辑空间量的储存系统中的特征。例如,可以宣称储存驱动器具有1MB的储存空间,或者用户能够从1MB的逻辑地址值读取或写入1MB的逻辑地址值,但是实际储存空间量或物理储存空间量大于1MB。在一个示例中,预留空间量可以计算为:
o p ( t ) = s ( t ) u × 100 % - - - ( 1 )
其中,op(t)是时间t处的预留空间量(百分率),s(t)是时间t处的空闲空间(即,预留空间)量(例如,由于块可能随磨损变坏),以及u是用户(逻辑)空间量(例如,所宣称的空间量)。例如,在储存系统具有1MB所宣称的储存空间(即,u=1MB)的情况下,对于1.07MB的总的实际储存空间或物理空间(即,u+s=1.07MB),7%的预留空间具有70KB的空闲空间(即,s=70KB)。
更好选择和/或调整预留空间量的新技术是可期望的。
附图说明
在下面的具体实施方式和附图中公开了本发明的各种实施例。
图1是图示使用成本函数(costfunction)来确定预留空间量的过程的实施例的流程图。
图2是图示基于成本来确定预留空间量的固态储存系统的实施例的示图。
图3是图示写入放大函数(writeamplificationfunction)的实施例的示图。
图4是图示成本函数的实施例的示图。
图5是图示组合的写入放大与成本函数的实施例的示图。
图6是图示使用成本函数和写入放大函数来确定预留空间量的过程的实施例的流程图。
图7是图示确定预留空间量的过程(该过程包括寻找预留空间的可接受量的范围)的流程图。
图8是图示使用基于一个或更多个位密度的成本函数来确定预留空间量的过程的流程图。
图9是图示作为编程和擦除计数的函数的预留空间函数的两个实施例的示图。
图10是图示至少部分地基于感兴趣阶段(anageofinterest)处的预留空间的阈值量来确定预留空间量的过程的示图。
具体实施方式
本发明能够以很多方式(包括方法、装置、系统、组合物、在计算机可读储存介质上实施的计算机程序产品和/或处理器(诸如,被配置为执行储存在耦接至处理器的存储器中和/或由耦接至处理器的存储器提供的指令的处理器))实现。在该说明书中,这些实施方式或本发明可以采用的任何其他形式可以被称为技术。总体而言,可以在本发明的范围内改变所公开过程的步骤的顺序。除非另有说明,否则被描述为配置为执行任务的组件(诸如,处理器或存储器)可以实施为被临时配置为在给定时间执行任务的一般组件或被制造来执行任务的特定组件。如本文所用的,术语“处理器”指被配置为处理数据(诸如,计算机程序指令)的一个或更多个器件、电路和/或处理核。
以下连同图示本发明原理的附图一起提供本发明的一个或更多个实施例的具体实施方式。虽然结合这样的实施例来描述本发明,但是本发明不局限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括很多可替代物、变型和等同物。在下面的描述中阐述了很多具体细节以便提供对本发明的全面理解。出于示例的目的来提供这些细节,并且可以在不存在一些或全部这些具体细节的情况下根据权利要求来实践本发明。出于清楚的目的,未详细描述在与本发明相关的技术领域中已知的技术材料,使得本发明没有被不必要地混淆。
在本文中描述用于确定预留空间量的各种技术。首先,描述基于写入放大函数和成本函数来确定预留空间量的技术的一些示例。然后,描述至少部分地基于感兴趣阶段处的预留空间的阈值量来确定预留空间量的技术的一些示例。
图1是图示使用成本函数来确定预留空间量的过程的实施例的流程图。在一些实施例中,图1的过程用于在固态储存系统的生命周期的中间(例如,当已经存在用户数据、开销数据(overheaddata)(诸如元数据)和/或储存在固态储存驱动器或介质上的其他信息时)调整预留空间量。在一些实施例中,在固态储存驱动器的生命周期开始时(例如,当设计储存系统时)执行图1的过程。
在100处,获取成本函数,其中与固态储存器件关联的预留空间量是成本函数的输入,以及针对给定预留空间量的成本是成本函数的输出。由成本函数输出的成本可以以各种单位来表达。在本文所述的一些实施例中,成本与总储存空间量(例如,预留空间加上用户空间)有关,其中用户空间是基线且与成本1关联。例如,对于10%的预留空间,对应的输出成本(在这样的实施例中)将是1.1。在一些实施例中,这样的成本函数是期望的,因为该成本函数容易获取和/或容易起作用。
在102处,使用成本函数确定预留空间量。在以下更详细描述的一些示例中,这包括将成本函数与另一函数相乘并且寻找对应于组合函数的最小值的预留空间量。在一些实施例中,系统被配置为具有对应于组合函数的最小值的预留空间量。在一些实施例中,代替使用与对应于组合函数的最小值的预留空间量近似的一些预留空间量。
在104处,将用于固态储存器件的预留空间量设置为确定量。例如,固态储存控制器中的管理和/或追踪哪些物理地址对应于预留空间储存空间以及哪些物理地址对应于用户空间的一些组件或块被相应地更新。如果有必要,在已储存的信息从预留空间储存空间被重新分配或另外地重新指定至用户空间之前,将已储存的信息移动至另一物理位置,反之亦然。
一些其他技术可以任意地或出于历史原因(例如,某些预留空间量总是被使用)选择预留空间量。使用成本函数是用来确定具有多少预留空间的更合理且数据驱动的方法,该方法(作为示例)衡量更多预留空间的好处(例如,较少的写入放大,其在以下被更详细地描述)与更多预留空间的额外成本。
下面的附图图示执行图1的过程的系统的示例。
图2是图示基于成本来确定预留空间量的固态储存系统的实施例的示图。在所示示例中,空闲空间管理器204确定(例如,在所示储存系统的生命周期期间)具有多少空闲空间206(即,预留空间)。自然地,所确定的空闲空间206的量影响用户空间208的量。在一些其他实施例中(例如,其中在储存系统的生命周期开始时执行图1的过程),可以通过除空闲空间管理器204以外的一些器件(诸如,处理器,其在图2中示出的储存系统的外部)来在外部执行该过程,并且固态储存器件210可以被相应地制造和/或配置。
固态储存器件210被划分为两部分:空闲空间206和用户空间208。用户空间208的大小对应于所宣称的或可寻址的用户逻辑空间量。空闲空间206对应于可以是非宣称的容量的额外储存空间。例如,根据以上等式(1),如果用户空间208对应于1MB的储存空间并且空闲空间206对应于70KB的储存空间,那么固态储存器件210具有7%的预留空间。
在该特定示例中,空闲空间206用于实现高速缓冲存储器。为了使在空闲空间206中实现的高速缓冲存储器具有比用户空间208快的读取时间,空闲空间206被配置为与用户空间208相比每单元具有较少的位。例如,空闲空间206可以实现为具有每单元1位的单级单元(SLC),而用户空间208可以实现为具有每单元2位的多级单元(MLC)。自然地,可以使用其他类型的单元(诸如,三级单元(TLC)、四级单元(QLC)等)。也不需要空闲空间206实现为SLC,只是位密度低于用户空间208的位密度(由于储存较少位的单元能够比具有更多位的单元被更快地回读)。例如,在空闲空间206中实现的高速缓冲存储器可以位于MLC中,而用户空间208可以位于TLC中。
在该特定示例中,可以根据哪些物理地址是SLC和哪些物理地址是MLC来配置固态储存器件210。例如,固态储存器件210可以暴露一些接口或寄存器,通过该接口和寄存器能够编程指定物理地址的位密度(例如,将<地址范围>设置为<每单元的位数量>)。
在一些实施例中,通过调整空闲空间206的位密度来调整预留空间量。在使用MLC来实现至少一些空闲空间206的一个示例中,如果决定减小预留空间量,那么至少一些MLC空闲空间从MLC改变为SLC。相似地,可以通过将一些SLC空闲空间改变为MLC空闲空间来增加空闲空间206中的储存量。要注意的是,空闲空间206全都是MLC或全都是SLC可以不是必要的。即,空闲空间206可以包括一些SLC和一些MLC(作为示例)。
在一些实施例中,可以根据哪些物理地址包括空闲空间206和哪些物理地址包括用户空间208来配置固态储存器件210。可替代地,空闲空间管理器204或一些其他地址跟踪器或管理器(例如,逻辑-物理地址映射表)可以跟踪哪些物理地址对应于空闲空间(其可能包括高速缓冲存储器)和哪些物理地址对应于用户空间。
写入放大是固态储存系统特别感兴趣的度量。即,写入放大不是硬盘驱动器(HDD)储存器件或其他类型储存器件所感兴趣的,因为其与非固体储存系统不相关。写入放大等于其中,分子在储存器件控制器202与固态储存器件210之间是可观测的,以及分母在主机200与储存器件控制器202之间是可观测的。写入放大值越低,开销写入越少(这是可取之处)。理想写入放大值或最佳写入放大值是1(即,当无开销写入时)。
返回图1,在一些实施例中,获取写入放大函数,其中在步骤102处使用写入放大函数来确定预留空间量。下面的附图示出这样的写入放大函数的示例。
图3是图示写入放大函数的实施例的示图。在所示示例中,示图300中的x轴线对应于预留空间(百分比),而y轴线对应于写入放大。在该特定示例中,预留空间被表示为百分比;自然地,在一些其他实施例中,预留空间可以以字节来表示(例如,KB,MB等)。
为了便于阅读,以下在表格中示出包括示图300中示出的示例性写入放大函数的数据点。
预留空间 写入放大
10% 6.5
20% 3.8
30% 2.3
40% 2.1
50% 1.9
60% 1.8
70% 1.7
80% 1.7
90% 1.6
100% 1.6
110% 1.5
120% 1.5
130% 1.5
140% 1.5
150% 1.5
160% 1.5
表1:示例性写入放大函数(图3)中的数据点
如上所述,写入放大是主机写入加上开销写入(例如,来自垃圾收集(garbagecollection)、磨损均衡(wearleveling)等)与主机写入的比率。例如,主机与储存器件控制器之间的观察器或计数器将观察主机写入。储存器件控制器与固态储存驱动器或其本身的介质之间的观察器或计数器将观察主机写入加上开销写入(诸如,由储存器件控制器启动的垃圾收集)。
在一些实施例中,通过仿真或模拟来获取写入放大函数。例如,可以仿真具有各种预留空间量的模型系统来经历主机通信量,并且可以获取对应的写入放大量。当在储存系统的生命周期开始时确定预留空间时,这可以是有用的。在一些实施例中,写入放大函数来自真实世界环境中的真实世界系统。当在储存系统的生命周期的中间确定预留空间量时,这可以是有用的。在一些实施例中,使用一些技术的组合(例如,使用真实世界环境中的真实世界系统来获取几个数据点,以及使用插值和/或外推来获取其他数据点或数据值)。
一般情况下,写入放大可以表示为:
wa(t)=g(op(t))(2)
其中,wa(t)是时间t处的写入放大,以及op(t)是时间t处的预留空间(例如,块能够随着时间而随磨损变坏,这将侵蚀空闲块的量)。
一般来说,预留空间越多,写入放大越小。这是因为当存在更多的预留空间时存在更多的额外块和/或空块,因此不需要频繁地执行垃圾收集。因此,写入放大函数将(一般来说)示出写入放大随预留空间上升而趋于下降。
返回图1,在步骤102处,图3中示出的示例性写入放大函数可以与成本函数组合。下面的附图示出示例性成本函数。
图4是图示成本函数的实施例的示图。在该示例中,示图400的x轴对应于预留空间(百分比),以及y轴对应于成本。示图400示出可以在图1中的步骤100处获取且在步骤102处使用的成本函数的示例。在该特定示例中,用户空间u的成本被定义为1。因此,10%的预留空间的成本是1.1,20%的预留空间的成本是1.2等。
为了便于阅读,以下在表格中示出包括示图400中示出的示例性成本函数的数据点。
预留空间 成本
10% 1.1
20% 1.2
30% 1.3
40% 1.4
50% 1.5
60% 1.6
70% 1.7
80% 1.8
90% 1.9
100% 2.0
110% 2.1
120% 2.2
130% 2.3
140% 2.4
150% 2.5
160% 2.6
表2:示例性成本函数(图4)中的数据点
在图1中的步骤102处,图3中示出的写入放大函数和图4示出的成本函数可以被组合并且可以用于确定预留空间量。下面的示图示出这样的组合函数的示例。
图5是图示组合的写入放大和成本函数的实施例的示图。通过将图3中示出的写入放大函数与图4中示出的成本函数相乘来获取示图500中示出的函数。组合的写入放大和成本函数是用于确定预留空间量的目标函数的一个示例。虽然以下示例讨论了组合的写入放大和成本函数,但是可以使用任何目标函数。
为了便于阅读,以下在表格中示出包括示图500中示出的示例性组合函数的数据点。
表3:示例性组合函数(图5)中的数据点
在该特定示例中,首先寻找组合函数的最小值。在该示例中,最小值对应于数据点(50%,2.85)。组合函数是最小值的预留空间量在本文被称为最小预留空间量(例如,由于术语“组合函数是最小值的预留空间量”是笨拙的)。在该示例中,由于最小预留空间量对应于最低的组合的写入放大和成本,因此最小预留空间量将是50%。
在一些实施例中,预留空间的大小可以被调整为最小预留空间量。在一些实施例中,最小预留空间量用于确定预留空间的可接受量的范围,从该范围中选择一个预留空间量。以下详细描述这种示例。
下面的示图图示了使用成本函数和写入放大函数来确定预留空间量的过程的实施例。
图6是图示使用成本函数和写入放大函数来确定预留空间量的过程的实施例的流程图。图6类似于图1,并且相同的步骤使用相同的附图标记。
在100处,获取成本函数,其中与固态储存器件关联的预留空间量是成本函数的输入,以及针对给定预留空间量的成本是成本函数的输出。例如,参见图4中示出的成本函数。
在600处,获取写入放大函数,其中与固态储存器件关联的预留空间量是写入放大函数的输入,以及针对给定预留空间量的写入放大量是写入放大函数的输出。例如,参见图3中示出的写入放大函数。
在602处,使用成本函数来确定预留空间量,包括:(1)组合成本函数和写入放大函数以便获取组合函数,以及(2)寻找组合函数的最小值。例如,参见图5中示出的组合函数。在该示例中,磨损函数的最小值是2.85,其对应于50%的预留空间。
在104处,固态储存器件的预留空间量被设置为确定量。在一些实施例中,预留空间量被设置为与在步骤602处找到的组合函数的最小值对应的最小预留空间量。可替代地,最小预留空间量可以用于寻找预留空间的可接受量的范围,以及从该范围选择一个预留空间量。下面的附图示出的该示例。
图7是图示确定预留空间量的过程的实施例的流程图,包括寻找预留空间的可接受量的范围。在一些实施例中,图6中的步骤602包括该过程。
在700处,组合成本函数和写入放大函数以便获取组合函数。在702处,寻找组合函数的最小值。出于完备性,即使在图6中的步骤602中已经包括步骤700和步骤702,也在这里重复步骤700和步骤702。
在704处,使用组合函数的最小值来确定阈值。在该示例中,将小值(即,δ)加到最小的组合的写入放大和成本值。在该示例中,其是2.85+δ。如果δ=0.13,则阈值是2.85+0.13=2.98。
在706处,确定预留空间的可接受量的范围,包括确定对应于小于阈值的组合的成本和写入放大的预留空间量。例如,如表格3所示,下面的数据点具有小于3的组合的成本和写入放大:(40%,2.94)、(50%,2.85)、(60%,2.88)和(70%,2.89)。预留空间的可接受量的范围在该特定示例中是40%以上且70%以下。
在718处,从可接受量的范围选择预留空间量中的一个。例如,可以期望从预留空间的可接受量的范围选择最低的预留空间量,在这种情况下是40%。参见图4,成本成直线上升,但是图3中降低的写入放大的益处停止增长(flattenout),因此从可接受范围选择最低的预留空间量可能是最好的折衷。
在一些实施例中,成本函数的形状可以取决于一个或更多个位密度。下面的附图示出了该示例。
图8是图示使用取决于一个或更多个位密度的成本函数来确定预留空间量的过程的实施例的流程图。图8类似于图1,并且相同的步骤使用相同的附图标记。
在800处,获取成本函数,其中:(1)与固态储存器件关联的预留空间量是成本函数的输入,(2)针对给定预留空间量的成本是成本函数的输出,以及(3)成本函数取决于以下项的一个或更多个:用户空间的位密度或预留空间的位密度。
在图4中,示图400中示出的示例性成本函数假设用户空间的位密度和空闲空间的位密度是相同的(例如,两者都是SLC,两者都是MLC等)。如上所述,在一些实施例中,用户空间和空闲空间具有位密度。在简单示例中(出于解释的目的),空闲空间全都总是SLC(例如,因为空闲空间包括需要较快响应时间的高速缓冲存储器),以及用户空间全都总是MLC。对于这样的配置,成本函数的斜率将是如图4所示的斜率的两倍那样陡峭。这是因为将块加至用户空间将对空闲空间增加(每单元1位*<每块的单元数量>),而从用户空间减去(每单元2位*<每块的单元数量>)。为了更加普遍,在一些实施例中,成本函数考虑位密度,用户空间的位密度和/或空闲空间的位密度。
在102处,使用成本函数来确定预留空间量。在104处,用于固态储存器件的预留空间量被设置为确定量。
自然地,这里所示的技术可以与上述其他技术结合(例如,图6或图7)使用。
下面的附图描述用于使用感兴趣阶段处的预留空间的阈值量来确定预留空间量的技术的各种示例。在上述示例中,感兴趣阶段是固态储存驱动器或介质的寿命的结束。
图9是图示作为编程和擦除计数的函数的预留空间函数的两个实施例的示图。示图900示出两个预留空间函数:OP1(902)和OP2(904)。OP1(902)对应于50%的初始预留空间,而OP2(904)对应于60%的初始预留空间。随着编程和擦除(P/E)计数(即,磨损量或使用年限)增加,预留空间量减小。这是因为编程和擦除操作对固态储存单元是非常有压力的,并且它们逐渐破坏单元的电绝缘,使它们“泄漏”电荷。
为了便于阅读,以下在表格中示出包括示图900中示出的示例性预留空间函数的数据点。
P/E计数 预留空间(OP1) 预留空间(OP2)
0 50% 60%8 -->
500 50% 60%
1,000 50% 60%
1,500 50% 60%
2,000 50% 60%
2,500 50% 60%
3,000 45% 54%
3,500 42% 51%
4,000 41% 49%
4,500 40% 47%
5,000 35% 44%
表4:示例性预留空间函数(图9)中的数据点
可以期望在寿命的结束处具有至少一些最小预留空间量。例如,如果不存在足够的预留空间,那么由于系统必须执行垃圾收集(其延迟了来自主机的读取请求或写入请求),因此对主机访问请求的响应时间可能被延迟。下面的附图描述特定感兴趣阶段处的预留空间的阈值量被用于确定预留空间量的过程。
图10是图示至少部分地基于感兴趣阶段处的预留空间的阈值量来确定预留空间量的过程的示图。
在1000处,获取多个预留空间函数,其中:(1)在多个预留空间函数中的每个预留空间函数输入磨损量,(2)多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量,以及(3)每个预留空间函数具有初始预留空间量。例如,参见图9中示出的预留空间函数。
在1002处,获取与感兴趣阶段关联的预留空间的阈值量。例如,感兴趣阶段可以根据P/E计数来表示。在一个实施例中,感兴趣的P/E计数是5,000个P/E周期,且在该P/E计数处的预留空间的阈值量是40%
在1004处,识别多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量。例如,对于表格4,在5000的P/E计数处,第一预留空间函数(OP1)具有35%的预留空间值,以及第二预留空间函数(OP2)具有44%的预留空间值。在该示例中,仅第二预留空间函数满足测试。
在1006处,确定与识别的预留空间函数对应的初始预留空间量。为了继续以上示例,第二预留空间函数(OP2)具有60%的初始预留空间。然后,可以使用在步骤1006处找到的初始预留空间量(例如,60%)来相应地配置或在大小上调整空闲空间。
在一些实施例中,图7的过程与图10的过程结合。例如,在图7中的步骤706处,确定预留空间的可接受量的范围,以及在步骤708处,选择这些量中的一个。在一些实施例中,图10的过程用于从图7中的步骤708选择预留空间的可接受量中的一个。为了继续以上示例,将根据图10来处理在40%、50%、60%、70%和80%开始的预留空间函数以便选择预留空间的可接受量中的一个。即,在一些实施例中,图7中的步骤708包括图10的过程。相反地,在一些实施例中,图10的过程独立于图7的过程而使用。
虽然已经出于清楚理解的目的相当详细地描述了前述实施例,但是本发明不局限于所提供的细节。存在实现本发明的很多可替代方式。所公开的实施例是说明性的而非限制性的。
通过以上实施例可以看出,本发明提供以下技术方案。
技术方案1.一种系统,包括:
处理器;以及
存储器,与处理器耦接,其中,存储器被配置为将指令提供给处理器,当执行指令时使处理器:
获取成本函数,其中,与固态储存器件关联的预留空间量是成本函数的输入,以及针对给定预留空间量的成本是成本函数的输出;
使用成本函数来确定预留空间量;以及
将用于固态储存器件的预留空间量设置为确定量。
技术方案2.如技术方案1所述的系统,其中,固态储存器件包括空闲空间和用户空间。
技术方案3.如技术方案2所述的系统,其中:
空闲空间包括高速缓冲存储器,高速缓冲存储器包括一个或更多个单级单元SLC;以及
用户空间包括一个或更多个多级单元MLC。
技术方案4.如技术方案1所述的系统,其中:
存储器还被配置为将指令提供给处理器,当执行指令时使处理器:获取写入放大函数,其中,与固态储存器件关联的预留空间量是写入放大函数的输入,以及针对给定预留空间量的写入放大量是写入放大函数的输出;以及
确定预留空间量包括:
组合成本函数和写入放大函数以便获取组合函数;以及
寻找组合函数的最小值。
技术方案5.如技术方案4所述的系统,其中,确定预留空间量还包括:
使用组合函数的最小值来确定阈值;
确定预留空间的可接受量的范围,包括确定对应于小于阈值的组合的成本和写入放大的预留空间量;以及
从可接受量的范围选择预留空间量中的一个。
技术方案6.如技术方案1所述的系统,其中,成本函数取决于以下项中的一个或更多个:用户空间的位密度和预留空间的位密度。
技术方案7.如技术方案5所述的系统,其中,从可接受量的范围选择预留空间量中的一个包括:
获取多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
确定与识别的预留空间函数对应的初始预留空间量。
技术方案8.一种系统,包括:
处理器;以及
存储器,与处理器耦接,其中存储器被配置为将指令提供给处理器,当执行指令时使处理器:
获取与固态储存器件关联的多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
确定与识别的预留空间函数对应的初始预留空间量。
技术方案9.如技术方案8所述的系统,其中,固态储存器件包括空闲空间和用户空间。
技术方案10.如技术方案9所述的系统,其中:
空闲空间包括高速缓冲存储器,高速缓冲存储器包括一个或更多个单级单元SLC;以及
用户空间包括一个或更多个多级单元MLC。
技术方案11.一种方法,包括:
获取成本函数,其中,与固态储存器件关联的预留空间量是成本函数的输入,以及针对给定预留空间量的成本是成本函数的输出;
使用处理器以使用成本函数来确定预留空间量;以及
将用于固态储存器件的预留空间量设置为确定量。
技术方案12.如技术方案11所述的方法,其中,固态储存器件包括空闲空间和用户空间。
技术方案13.如技术方案12所述的方法,其中:
空闲空间包括高速缓冲存储器,高速缓冲存储器包括一个或更多个单级单元SLC;以及
用户空间包括一个或更多个多级单元MLC。
技术方案14.如技术方案11所述的方法,其中:
所述方法还包括:获取写入放大函数,其中,与固态储存器件关联的预留空间量是写入放大函数的输入,以及针对给定预留空间量的写入放大量是写入放大函数的输出;以及
确定预留空间量包括:
组合成本函数和写入放大函数以便获取组合函数;以及
寻找组合函数的最小值。
技术方案15.如技术方案14所述的方法,其中,确定预留空间量还包括:
使用组合函数的最小值来确定阈值;
确定预留空间的可接受量的范围,包括:确定对应于小于阈值的组合的成本和写入放大的预留空间量;以及
从可接受量的范围中选择预留空间量中的一个。
技术方案16.如技术方案11所述的方法,其中,成本函数取决于以下项中的一个或更多个:用户空间的位密度或预留空间的位密度。
技术方案17.如技术方案15所述的方法,其中,从可接受量的范围选择预留空间量中的一个包括:
获取多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
确定与识别的预留空间函数对应的初始预留空间量。
技术方案18.一种方法,包括:
获取与固态储存器件关联的多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
使用处理器来识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
使用处理器来确定与识别的预留空间函数对应的初始预留空间量。
技术方案19.如技术方案18所述的方法,其中,固态储存器件包括空闲空间和用户空间。
技术方案20.如技术方案19所述的方法,其中:
空闲空间包括高速缓冲存储器,高速缓冲存储器包括一个或更多个单级单元SLC,以及
用户空间包括一个或更多个多级单元MLC。

Claims (10)

1.一种系统,包括:
处理器;以及
存储器,与处理器耦接,其中,存储器被配置为将指令提供给处理器,当执行指令时使处理器:
获取成本函数,其中,与固态储存器件关联的预留空间量是成本函数的输入,以及针对给定预留空间量的成本是成本函数的输出;
使用成本函数来确定预留空间量;以及
将用于固态储存器件的预留空间量设置为确定量。
2.如权利要求1所述的系统,其中,固态储存器件包括空闲空间和用户空间。
3.如权利要求2所述的系统,其中:
空闲空间包括高速缓冲存储器,高速缓冲存储器包括一个或更多个单级单元SLC;以及
用户空间包括一个或更多个多级单元MLC。
4.如权利要求1所述的系统,其中:
存储器还被配置为将指令提供给处理器,当执行指令时使处理器:获取写入放大函数,其中,与固态储存器件关联的预留空间量是写入放大函数的输入,以及针对给定预留空间量的写入放大量是写入放大函数的输出;以及
确定预留空间量包括:
组合成本函数和写入放大函数以便获取组合函数;以及
寻找组合函数的最小值。
5.如权利要求4所述的系统,其中,确定预留空间量还包括:
使用组合函数的最小值来确定阈值;
确定预留空间的可接受量的范围,包括确定对应于小于阈值的组合的成本和写入放大的预留空间量;以及
从可接受量的范围选择预留空间量中的一个。
6.如权利要求1所述的系统,其中,成本函数取决于以下项中的一个或更多个:用户空间的位密度和预留空间的位密度。
7.如权利要求5所述的系统,其中,从可接受量的范围选择预留空间量中的一个包括:
获取多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
确定与识别的预留空间函数对应的初始预留空间量。
8.一种系统,包括:
处理器;以及
存储器,与处理器耦接,其中存储器被配置为将指令提供给处理器,当执行指令时使处理器:
获取与固态储存器件关联的多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
确定与识别的预留空间函数对应的初始预留空间量。
9.一种方法,包括:
获取成本函数,其中,与固态储存器件关联的预留空间量是成本函数的输入,以及针对给定预留空间量的成本是成本函数的输出;
使用处理器以使用成本函数来确定预留空间量;以及
将用于固态储存器件的预留空间量设置为确定量。
10.一种方法,包括:
获取与固态储存器件关联的多个预留空间函数,其中:
所述多个预留空间函数中的每个预留空间函数输入磨损量;
所述多个预留空间函数中的每个预留空间函数输出针对给定磨损量的预留空间量;以及
每个预留空间函数具有初始预留空间量;
获取与感兴趣阶段关联的预留空间的阈值量;
使用处理器来识别所述多个预留空间函数中的哪些预留空间函数具有比感兴趣阶段处的阈值量大的预留空间量;以及
使用处理器来确定与识别的预留空间函数对应的初始预留空间量。
CN201510624805.8A 2014-09-26 2015-09-25 用于选择预留空间量的技术 Active CN105573917B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462056292P 2014-09-26 2014-09-26
US62/056,292 2014-09-26
US14/850,587 2015-09-10
US14/850,587 US10031673B2 (en) 2014-09-26 2015-09-10 Techniques for selecting amounts of over-provisioning

Publications (2)

Publication Number Publication Date
CN105573917A true CN105573917A (zh) 2016-05-11
CN105573917B CN105573917B (zh) 2020-10-30

Family

ID=55584421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510624805.8A Active CN105573917B (zh) 2014-09-26 2015-09-25 用于选择预留空间量的技术

Country Status (2)

Country Link
US (1) US10031673B2 (zh)
CN (1) CN105573917B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI779300B (zh) * 2019-06-14 2022-10-01 大陸商華為技術有限公司 一種硬碟控制方法及相關設備

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484331B (zh) * 2015-09-29 2019-04-12 华为技术有限公司 一种数据处理方法、装置及闪存设备
US11188456B2 (en) * 2017-03-21 2021-11-30 Western Digital Technologies Inc. Storage system and method for predictive block allocation for efficient garbage collection
US10635335B2 (en) 2017-03-21 2020-04-28 Western Digital Technologies, Inc. Storage system and method for efficient pipeline gap utilization for background operations
US11269764B2 (en) 2017-03-21 2022-03-08 Western Digital Technologies, Inc. Storage system and method for adaptive scheduling of background operations
US10866741B2 (en) * 2017-08-02 2020-12-15 Toshiba Memory Corporation Extending SSD longevity
US11157400B2 (en) 2020-01-08 2021-10-26 Micron Technology, Inc. Performing a media management operation based on changing a write mode of a data block in a cache
US20240302971A1 (en) * 2023-03-06 2024-09-12 Dell Products L.P. System and method of preparing a solid state drive for reuse

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061502A1 (en) * 2005-09-09 2007-03-15 M-Systems Flash Disk Pioneers Ltd. Flash memory storage system and method
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
CN103488575A (zh) * 2013-08-12 2014-01-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656256B2 (en) * 2010-07-07 2014-02-18 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
JP6045567B2 (ja) 2011-04-26 2016-12-14 シーゲイト テクノロジー エルエルシーSeagate Technology LLC 不揮発性記憶のための可変オーバープロビジョニング
US9021231B2 (en) * 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US8762798B2 (en) * 2011-11-16 2014-06-24 Stec, Inc. Dynamic LDPC code rate solution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061502A1 (en) * 2005-09-09 2007-03-15 M-Systems Flash Disk Pioneers Ltd. Flash memory storage system and method
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
CN103488575A (zh) * 2013-08-12 2014-01-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI779300B (zh) * 2019-06-14 2022-10-01 大陸商華為技術有限公司 一種硬碟控制方法及相關設備

Also Published As

Publication number Publication date
US20160092114A1 (en) 2016-03-31
US10031673B2 (en) 2018-07-24
CN105573917B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN105573917A (zh) 用于选择预留空间量的技术
CN109800180B (zh) 用于地址映射的方法和存储器系统
CN104714893B (zh) 用于缩放垃圾收集的方法和系统
US20210019650A1 (en) Systems and methods for a data storage system
US20110238892A1 (en) Wear leveling method of non-volatile memory
US9292432B2 (en) Garbage collection method for flash memory
US20150186262A1 (en) Data storage device and flash memory control method
US7761648B2 (en) Caching method for NAND flash translation layer
CN104346290A (zh) 存储装置、计算机系统及其操作方法
CN101208753A (zh) 使用相对等级来实现闪存中的磨损均衡的方法
US11204697B2 (en) Wear leveling in solid state devices
CN110442529A (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
US20190042405A1 (en) Storing data based on writing frequency in data storage systems
CN103294607A (zh) 一种存储管理方法
CN112596666A (zh) 存储器系统及其操作方法
CN111831218A (zh) 控制器及其操作方法
CN109800178A (zh) 垃圾收集方法以及用于混合地址映射的存储器系统
US10007601B2 (en) Data storage device and operating method for flash memory
US9298610B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN103744615A (zh) 一种动态补偿接收器及动态补偿接收方法
TW201115582A (en) Method for determining data correlation and data processing method for memory
CN106020726A (zh) 写入元数据的方法、设备、以及存储装置
US11269534B2 (en) Data storage device and non-volatile memory control method
Chung et al. Lstaff: System software for large block flash memory
US20200183830A1 (en) Method for gabage collecting for non-volatile memory

Legal Events

Date Code Title Description
C06 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