CN105487986B - 考虑总字节写入需求时设置高速缓冲存储器的大小 - Google Patents

考虑总字节写入需求时设置高速缓冲存储器的大小 Download PDF

Info

Publication number
CN105487986B
CN105487986B CN201510642769.8A CN201510642769A CN105487986B CN 105487986 B CN105487986 B CN 105487986B CN 201510642769 A CN201510642769 A CN 201510642769A CN 105487986 B CN105487986 B CN 105487986B
Authority
CN
China
Prior art keywords
cache
size
state storage
count
cache memory
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
CN201510642769.8A
Other languages
English (en)
Other versions
CN105487986A (zh
Inventor
唐翔宇
弗雷德里克·K.H.·李
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
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN105487986A publication Critical patent/CN105487986A/zh
Application granted granted Critical
Publication of CN105487986B publication Critical patent/CN105487986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

获取与固态储存设备关联的总字节写入TBW需求。至少部分地基于TBW需求来确定与固态储存设备关联的高速缓冲存储器的大小。将高速缓冲存储器的大小调整为确定大小。

Description

考虑总字节写入需求时设置高速缓冲存储器的大小
相关申请的交叉引用
本申请要求2014年10月6日提交的名称为“MANAGEMENT SCHEMES FOR NAND FLASHWITH VARIABLE-SIZED CACHE(具有可变大小的高速缓冲存储器的与非快闪存储器的管理方案)”的美国临时专利申请No.62/060,387和2015年9月2日提交的名称为“SIZING ACACHE WHILE TAKING INTO ACCOUNT A TOTAL BYTES WRITTEN REQUIREMENT(考虑总字节写入需求时设置高速缓冲存储器的大小)”的美国专利申请No.14/843,632的优先权,其全部内容通过引用合并于此用于所有目的。
背景技术
在一些固态储存系统中,固态储存介质或驱动器的一小部分被设计为高速缓冲存储器。(注意高速缓冲存储器在固态储存介质本身上,而不是在(固态)储存控制器上)。在一些情况下,高速缓冲存储器使用每个单元储存1位的单级单元(SLC)来实现,而常规驱动器(即,不在高速缓冲存储器中的其余的固态储存介质)使用一些密集单元技术(诸如,每个单元储存2位的多级单元(MLC)或每个单元储存3位的三级单元(TLC))。由于不同的密度,与常规驱动器相比,高速缓冲存储器将具有更快的读取时间和写入时间,更加容错,且能够承受更多的编程和擦除(P/E)循环。因为SLC与MLC(或TLC) 之间的位密度差,因此缺点是高速缓冲存储器中的块将具有比常规驱动器中的块小的容量。能够更好地选择高速缓冲存储器的大小(例如,在允许高速缓冲存储器改变大小的模式期间)的新技术是期望的。
附图说明
在下面的具体实施方式和附图中公开了本发明的各种实施例。
图1是图示至少部分地基于总字节写入(total bytes written,TBW)需求来设置高速缓冲存储器的大小的过程的实施例的流程图。
图2是图示包括可变大小的高速缓冲存储器的固态储存系统的实施例的示图。
图3是图示判断固态储存系统是处于可变大小模式还是处于固定大小模式的过程的实施例的流程图。
图4是图示高速缓冲存储器大小(s)对可变大小模式中的剩余P/E循环(PER)的曲线图的实施例的示图。
图5是图示至少部分地基于TBW需求来确定高速缓冲存储器的大小的过程的实施例的流程图。
图6是图示至少部分地基于固态储存系统在固定大小模式期间的未来状态来确定高速缓冲存储器的大小的过程的实施例的流程图。
图7是图示缩小高速缓冲存储器的大小的过程的实施例的流程图。
图8是图示用于写入固态储存设备(包括高速缓冲存储器和常规驱动器)的过程的实施例的流程图。
图9是图示高速缓冲存储器扩大大小的过程的实施例的流程图。
图10是图示有助于磨损均衡的块交换(block swapping)过程的实施例的流程图。
具体实施方式
本发明能够以很多方式(包括方法、装置、系统、组合物、在计算机可读储存介质上实施的计算机程序产品和/或处理器(诸如,被配置为执行储存在耦接至处理器的存储器中和/或由耦接至处理器的存储器提供的指令的处理器))来实现。在该说明书中,这些实施方式或本发明可以采用的任何其他形式可以被称为技术。一般而言,在本发明的范围内可以改变所公开过程的步骤的顺序。除非另有说明,否则组件(诸如,被描述为被配置为执行任务的处理器或存储器)可以实施为被临时配置为在给定时间执行任务的一般组件或被制造为执行任务的特定组件。如本文所用的,术语“处理器”指被配置为处理数据(诸如,计算机程序指令)的一个或更多个器件、电路和/或处理核。
在下面本发明的一个或更多个实施例的具体实施方式与图示本发明的原理的附图一起被提供。虽然结合这样的实施例来描述本发明,但是本发明不局限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括很多替代、修改和等同物。在下面的描述中阐述了很多具体细节以便提供对本发明的全面理解。出于示例的目的来提供这些细节,并且在不存在一些或全部这些具体细节的情况下可以根据权利要求来实践本发明。出于清楚的目的,未详细描述与本发明相关的技术领域中已知的技术材料,使得本发明没有被不必要地混淆。
图1是图示至少部分地基于总字节写入(TBW)需求来设置高速缓冲存储器的大小的过程的实施例的流程图。例如,该过程可以用于设置固态储存介质或驱动中的高速缓冲存储器的大小(例如,如果需要,一次或多次),使得响应时间被改善或最优化,而不使高速缓冲存储器如此之大以至于违反TBW需求(例如,在未来)。在一些实施例中,该过程由固态储存设备控制器执行,固态储存设备控制器控制固态储存驱动器或介质如何被划分为高速缓冲存储器部分和常规驱动器部分。在一些实施例中,当允许高速缓冲存储器改变大小时,该过程在可变大小模式或时段期间执行。
在100处,获取与固态储存设备关联的总字节写入(TBW)需求。不同于其他类型的储存设备(诸如,硬盘驱动器(HDD)),固态储存设备随使用而磨损。更具体地,编程和擦除(P/E)循环破坏固态储存单元中的电绝缘,使它们随着固态储存介质经历的 P/E循环的数量的增加而关于电荷“泄漏”。为了简单起见,有时假设当达到某一最大数量的P/E循环时固态储存单元磨损。根据固态储存设备如何因编程和擦除而磨损,系统制造商常常具有固态储存介质制造商必须满足的总字节写入(TBW)需求。
TBW需求通常是关于从主机发送至固态储存设备控制器的写入数据量。这意味着写入放大(write amplification,WA)越多(例如,其中WA被定义为固态储存介质或驱动器的写入的总数量(例如,主机写入加上开销写入)与主机写入的数量的比率),固态储存介质将必须越鲁棒,以便承受由较大WA值造成的额外开销写入。在一个示例中, 256GB的固态储存驱动具有与其关联的1TB的TBW需求。如果所有写入均匀地遍布于固态储存介质,则每个块(或更通常地,位置)被写入大约4次。然而,要注意的是,必须支持写入位置的任何顺序或组合,因此固态储存介质必须(还)能够容忍被发送至相同逻辑块地址的1TB的写入数据(作为示例)。
在102处,至少部分地基于TBW需求来确定与固态储存设备关联的高速缓冲存储器的大小。以下更详细地描述一些这种示例。
在104处,高速缓冲存储器的大小被调整为确定大小。在一些实施例中,高速缓冲存储器的大小可以在可变大小模式期间根据需要来调整多次。在一个示例中,对于更简单系统(例如,具有有限处理能力的消费产品),可以在可变大小模式开始时设置一次高速缓冲存储器的大小。对于更关注性能且存在更多可用的处理资源的系统(例如,企业系统),可以在可变大小模式期间根据需要来重新设置高速缓冲存储器的大小多次。
高速缓冲存储器通常具有比常规驱动器低的位密度。在以下描述的一些示例中,高速缓冲存储器每单元储存1位,而常规驱动器每单元储存2位。由于块的总数量(即,高速缓冲存储器中的块的数量加上常规驱动器中的块的数量)是固定的,因此增大高速缓冲存储器的大小会减小总储存容量或全部储存容量,因为高速缓冲存储器通常每个块具有较少位。
较小总储存容量(由增大的高速缓冲存储器大小而造成的)意味着主机写入和开销写入更加集中,使得每个块要经历更多的编程和擦除。危险是如果高速缓冲存储器过大,则将违反TBW需求,因为过大的高速缓冲存储器将使P/E计数超过最大P/E计数(例如,假设块在最大P/E计数处磨损)。换句话说,在高速缓冲存储器的大小与满足TBW 需求的裕度(例如,根据块在最大P/E计数处磨损之前的过量或剩余P/E循环而测量的) 之间存在折衷。
在一些实施例中,图1的过程用于选择高速缓冲存储器的最大可能大小以改善性能,但不是如此之大以至于违反TBW需求(例如,因为超过某一最大数量的P/E循环)。即,该技术使高速缓冲存储器的大小能够被设置,使得系统以用于满足TBW需求的较小裕度为代价而具有改善的性能(例如,当满足TBW需求时,单元接近于磨损,但实际上未达到某一最大P/E循环计数(为了简单起见,假设在某一最大P/E循环计数处所述单元失效))。
改变高速缓冲存储器的大小(例如,与贯穿固态储存系统的生命周期保持固定的高速缓冲存储器的大小相反)的一个好处在于:能够将系统的吞吐量增加(其中较大的高速缓冲存储器大小是期望的,因为当存在高速缓冲存储器命中时其允许更快的响应时间) 至TBW需求允许的程度,而没有实际违反TBW需求。
下面的附图示出执行图1中描述的过程的固态储存系统的示例。
图2是图示包括可变大小的高速缓冲存储器的固态储存系统的实施例的示图。固态储存设备控制器200是执行图1的过程的系统的一个示例。在一些实施例中,固态储存设备控制器200是半导体器件(诸如,专用集成电路(ASIC)或现场可编程门阵列 (FPGA))。
在所示示例中,固态储存设备220被划分为高速缓冲存储器222和常规驱动器224。在该具体示例中,高速缓冲存储器使用每单元储存1位的单级单元(SLC)来实现。高速缓冲存储器222实现为SLC使得其能够以较少错误来更快地回读。由于只存在两个分布(例如,一个是0和一个是1),因此电压分布定位更远,以及因此存在较少的回读错误和需要执行的纠错解码的较少循环。
相反地,常规驱动器224使用每单元储存2位的多级单元(MLC)来实现。结果,存在4个分布(例如,一个是00,一个是01,一个是10和一个是11),以及它们必须挤入与两个SLC分布相同的电压范围中。因此MLC分布与SLC分布相比相互更接近,以及因此将发生更多的回读错误并且将需要执行纠错解码的更多错误循环。这是为什么 SLC高速缓冲存储器222与MLC常规驱动器224相比能够以较少错误而被更快地回读。在一些实施例中,常规驱动器224使用每单元储存3位的三级单元(TLC)来实现。
主机接口204从主机(未示出)接收读取指令和写入指令。在主机接口204的内部是写入字节计数器202,其计数从主机接收到的写入数据量。在一些实施例中,从写入字节计数器202获取TBWP(t)的值(已经被写入并且对TBW需求计数的主机数据量)。
在该示例中,高速缓冲存储器控制器206定期地确定高速缓冲存储器222的大小,并且是执行图1中的步骤102的组件的一个示例。在一些实施例中,逻辑至物理(L2P) 映射表208用于记录固态储存设备220的哪个部分属于高速缓冲存储器222和固态储存设备220的哪个部分属于常规驱动器224。例如,L2P映射表208可以包括在高速缓冲存储器222和常规驱动器224中的(例如,物理)地址的范围。
在一些实施例中,固态储存设备220被配置为支持高速缓冲存储器,高速缓冲存储器的大小是可配置的或另外可调整的。在一些这样的实施例中,固态储存设备220可以暴露对固态储存设备控制器220的接口或控制,以为高速缓冲存储器222和常规驱动器 224(例如,SLC、MLC、三级单元(TLC)等)指定位密度,并且指定哪些(例如,物理)地址在高速缓冲存储器中和哪些(例如,物理)地址在常规驱动器中。
在如何使用高速缓冲存储器222和常规驱动器224的一个示例中,主机(未示出)意识到存在高速缓冲存储器,并且有能力标记、贴标签或以其它方式指示(如果需要) 什么主机写入数据应当被储存在高速缓冲存储器222中和什么主机写入数据应当被储存在常规驱动器224中。例如,如果由主机接口204接收到的主机写入包括高速缓冲存储器标签,则该写入数据被储存在高速缓冲存储器222中。如果否,则写入数据被储存在常规驱动器224中。
可替代地,主机没有意识到高速缓冲存储器和/或不具有对什么主机写入数据被储存在高速缓冲存储器中的控制。在这样的系统的一个示例中,温度识别器212确定从主机接收到的写入数据的温度。如果数据在未来不久将被无效(或至少被认为是无效的)或被另外地重写,则数据是热的。如果数据在很长时间内保持有效(即,未被重写),则数据是冷的。主机写入温度识别器212可以使用任何合适的技术来确定从主机接收到的写入数据的温度。基于由温度识别器212确定的温度,热数据被储存在高速缓冲存储器222 中而冷数据被储存在常规驱动器224中。如何将数据分配至高速缓冲存储器222和常规驱动器224的这些示例仅是说明性的而非意在进行限制。
如以下将更详细描述的,为了调整高速缓冲存储器222的大小(参见,图1中的步骤104),可以在一些实施例中使用垃圾收集器210。可替代地,在高速缓冲存储器222 或常规驱动器224中可以已经存在(例如,未执行垃圾收集)足够的空闲块(free block) (即,空的且可用于被写入的块)被再分配为另一种块,并且调整大小是相对简单的过程(例如,高速缓冲存储器控制器206更新储存在逻辑至物理映射表208中的信息,使得空块(emptyblock)从高速缓冲存储器222移动至常规驱动器器224,或反之亦然)。
在一些实施例中,固态储存设备220包括被称为预留空间(overprovisioning)的一些额外容量(例如,非宣称的)。例如,具有7%的预留空间的(据称)1GB驱动器实际上具有1.07GB的实际储存空间。
在一些实施例中,固态储存系统以可变大小模式开始(例如,在可变大小模式中允许高速缓冲存储器222的大小改变),并且以固定大小模式结束(例如,在固定大小模式中高速缓冲存储器222的大小是固定的)。下面的附图示出一个这种例子。
图3是图示判断固态储存系统是处于可变大小模式还是处于固定大小模式的过程的实施例的流程图。在一些实施例中,该过程由固态储存设备控制器执行。
在300处,判断是否已经满足一个或更多个固定大小模式标准。例如,假设存在某一值PER,PER是能够由固态储存介质在切换至固定大小模式之前的可变大小模式期间经历的P/E循环的数量。例如,对固态储存介质(例如,高速缓冲存储器或常规驱动器) 的所有编程操作和擦除操作将对该PER值计数。如果P/E计数(例如,对于整个固态储存介质或驱动器作为整体)满足PER值,则将满足示例性固定大小模式标准。
如以下将更详细地描述的,改变高速缓冲存储器的大小(例如,在可变大小模式期间从第一/起始高速缓冲存储器大小至第二高速缓冲存储器大小)有时对应于改变PER值(例如,从第一/起始PER值至第二PER值)。因此,在一些实施例中,步骤300处的决定或测试包括判断PER计数是否与当前或最新PER值匹配。
如果满足固定大小模式标准,则在步骤302处获取固定大小。例如,可以存在高速缓冲存储器应当被设置的某一预定义大小。在一些实施例中,在图1的步骤102处的大小计算假定了高速缓冲存储器在固定大小模式期间的特定大小,并且在步骤302处获取在计算中使用的该大小。
在304处,将高速缓冲存储器的大小调整为固定大小。在一些实施例中,垃圾收集用于重新设置高速缓冲存储器和常规驱动器器的大小。在一些实施例中,在高速缓冲存储器和常规驱动器器中存在足够的空闲块,使得重新设置大小的过程相对简单。
然后该过程结束,因为一旦高速缓冲存储器处于固定大小模式就不允许随后改变高速缓冲存储器的大小。
如果在步骤300处不满足固定大小模式标准,则执行图1的过程,因为系统(仍) 处于可变大小模式。要注意的是,可能不期望不断地重新计算高速缓冲存储器大小并连续地调整它,因此在该过程经由“否”路径退出步骤300之后,图1的过程可以不立即开始。
在图1的过程结束之后,在步骤300处(再次)判断是否满足固定大小模式标准。即,虽然该系统以可变大小模式开始并且被允许从可变大小模式转为固定大小模式,但是不允许该系统从固定大小模式转为可变大小模式。
下面的附图描述在图1的步骤102处如何确定高速缓冲存储器的大小的更具体的示例。首先,讨论详细的示例。然后,讨论关于详细的示例的一些概括。
TBWR(t)是在时间t处保持被写入(例如,为了满足TBW需求)的数据量(例如,以MB、TB等)。例如,下标R表示剩余。TBWR(t)能够被写为:
Figure BDA0000816081410000071
其中:
Figure BDA0000816081410000072
Figure BDA0000816081410000081
表1:等式(1)中的输入
等式(1)中的一些输入(诸如,C(t)和WA(s))随s(即,高速缓冲存储器的大小) 而变化。如上所述,C(t)取决于s,因为高速缓冲存储器和常规驱动器通常具有不同的位密度(例如,SLC和MLC),因此总容量将取决于高速缓冲存储器的大小。类似地,如果容量随s而变化,则写入放大也随s而变化。例如,假设高速缓冲存储器的大小增大,使得固态储存驱动器(作为整体)的容量减小。这将趋于引起更多的垃圾收集,进而将引起更多的写入放大。
等式(1)中的一些输入(诸如,PEcache和PEregular)随PER而变化。由于高速缓冲存储器和常规驱动器在固定大小模式期间的大小被预定义,因此需要由高速缓冲存储器和常规驱动器支持的P/E循环的数量取决于在可变大小模式期间将处理或另外地经历多少P/E循环(即,PER),以便稍后它们在固定大小模式期间不需要被处理。
剩余的输入Ccache、Cregular、WAcache和WAregular既不取决于s也不取决于PER
TBWR(t)可以被写为如下,其中该不等式从TBW需求获取:
TBWR(t)≥TBW(t)-TBWP(t) (2)
其中,TBWp(t)是时间t处已经被写入的数据量(例如,以MB、TB等为单位)(例如,以及其对TBW需求计数)。例如,下标P可以表示过去或先前。在一个示例中,在主机接口(例如,其在固态储存设备控制器中)中存在计数器,其计数从主机发送至固态储存设备控制器的写入数据量,并且从这样的计数器获取TBWp(t)。
等式(1)中的输入取决于s、PER或不取决于s和PER意味着存在s和PER的组合,该组合不违反等式(2)。换句话说,高速缓冲存储器的大小可以在可变大小模式期间根据需要而调整多次,其中,每次认真选择s和PER使得等式(2)保持。例如,在时间0 处的初始化大小期间,高速缓冲存储器的大小被设置为s0并且PER被设置为PER,0,其中(s0,PER,0)不违反等式(2)。在时间t1处的较晚时间点(仍在可变大小模式期间) 处,高速缓冲存储器的大小可以被设置为s1并且PER被设置为PER,1,其中(s1,PER,1) 不违反等式(2)。假设由于固态储存驱动器(作为整体)已经经历PER个P/E循环,因此满足当前PER值(在该时间点当前PER值是PER,1)。然后该系统被切换至固定大小模式,例如通过将高速缓冲存储器的大小设置为某一预定义大小并且将常规驱动器的大小设置为另一预定义大小。
下面的附图示出使用等式(1)获取的(s,PER)的示例性组合,其不引起等式(2) 被违反。
图4是图示高速缓冲存储器大小(s)对可变大小模式中的剩余P/E循环的曲线图的实施例的示图。在所示示例中,示图中 400的x轴是高速缓冲存储器大小(s),而示图中400的y轴是可变大小模式中的剩余P/E循环(PER)。
阴影区402示出不违反TBW需求(例如,在等式(2)中所表示的)的(s,PER) 的组合。只要在阴影区402中选择数据点,计算选中的高速缓冲存储器大小就不违反 TBW需求。例如,如果数据点A(410)、B(412)、C(414)或D(416)被选中,则高速缓冲存储器大小与剩余P/E循环的对应组合(即,(sA,PER,A)、(SB,PER,B)、(SC、 PER,C)和(SD,PER,D))将不违反TBW需求。与此相反,点E(418)(其在阴影区402 的外部)对应于(SE,PER,E)的数据点,(SE,PER,E)是违反TBW需求的组合。
例如,假设点B(412)被选中。高速缓冲存储器将被设置为SB的大小,以及PER,B的P/E计数将用于确定何时从可变大小模式切换至固定大小模式。
在一些实施例中,与点C(414)关联的高速缓冲存储器大小被选中,因为其通过选择最大的高速缓冲存储器大小(其不违反TBW需求)而使吞吐量最优化。例如,这在响应时间是高优先级的应用中可能是期望的。在一些实施例中,与点B(412)关联的高速缓冲存储器大小被选中,因为其是性能与裕度量(TBW需求满足于该裕度量)之间更均衡的折衷。在一些实施例中,与点A(410)关联的高速缓冲存储器大小被选中。这在响应时间不是所关心的而重要的是具有满足TBW需求的大量裕度的应用中可能是期望的。
注意如果需要,则高速缓冲存储器可以在可变大小模式期间根据需要而被多次重新设置大小。每次执行图1的过程,可以重新绘制或重新计算示出不违反TBW需求的(s,PER)的组合的新图表。例如,更新的或更当前的信息可以影响等式(1)的输入,该输入进而影响不违反TBW需求的(s,PER)的组合。
在图1的上下文中,步骤102可以按照该图中示出的示例以下面方式来执行。
图5是图示至少部分地基于TBW需求来确定高速缓冲存储器的大小的过程的实施例的流程图。在一些实施例中,图1中的步骤102包括图5的过程。
在500处,确定(1)高速缓冲存储器大小和(2)可变大小模式中的剩余编程和擦除(P/E)计数的多个组合,该多个组合不违反TBW需求。例如,在图4中,阴影区(402) 示出不违反TBW需求的(s,PER)的组合。
在502处,选中多个组合中的一个,其中与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。可以采用任何合适的选择技术(以上描述一些示例)。
返回等式(1),在可变大小模式期间执行高速缓冲存储器大小的确定,但是考虑固态储存设备在稍后的固定大小模式期间将处于什么状态。下面的附图示出了这种示例。
图6是图示至少部分地基于固态储存系统在固定大小模式期间的未来状态来确定高速缓冲存储器的大小的过程的实施例的流程图。在一些实施例中,图1中的步骤102包括图6的过程。
在600处,确定(1)高速缓冲存储器大小和(2)可变大小模式中的剩余编程和擦除(P/E)计数的多个组合,该多个组合不违反TBW需求,其中该确定至少部分地基于固态储存设备在可变大小模式之后的固定大小模式期间的未来状态。例如,未来状态可以包括下列项中的一个或更多个:PEcache、PEregular、Ccache、Cregular、WAcache或WAregular (参见表1)。
在602处,选中多个组合中的一个,其中与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。以上描述了一些示例。
返回图1,步骤104与将高速缓冲存储器的大小(和相应地,常规驱动器的大小) 调整为确定大小相关联。下面的附图描述了一个这种示例。
图7是图示缩小高速缓冲存储器的大小的过程的实施例的流程图。例如,当需要缩小高速缓冲存储器的大小时,图1中的步骤104可以包括图7的过程。注意图7的过程相应地引起常规驱动器的大小增大。
在700处,判断是否减小高速缓冲存储器大小。如果不需要减小高速缓冲存储器大小,则该过程结束。(注意在某些情况下,在图7的过程结束之后,接下来执行图8的步骤816)该检查明确地图示了图7与缩小高速缓冲存储器的大小(例如,和不扩大高速缓冲存储器的大小)有关。
如果在700处确定不需要减小高速缓冲存储器大小,则在702处判断是否了设置大小再分配标志。大小再分配标志用于确保至多一个重调大小的操作立刻运行。如果在702处已经设置了大小再分配标志,则该过程将继续步骤702处的检查直到标志被清除。
如果(或一旦)大小再分配标志在步骤702处被清除,则在步骤704处设置大小再分配标志(例如,使得在该重调大小的过程运行时不能运行另一个重调大小的过程)。然后在706处,一个或更多个空高速缓冲存储器块被指定为空常规驱动器块。根据实施方案,可以以各种方式(例如,通过改变对应于高速缓冲存储器/常规驱动器且被储存在逻辑至物理映射表中的(例如,物理)地址,或者如果固态储存驱动被配置为管理和/或记录其本身的什么部分对应于高速缓冲存储器和其本身的什么部分对应于常规驱动器,则将该改变通知固态储存驱动本身)来记录该改变。
在该特定示例中,假设该系统在高速缓冲存储器中保持最小数量的空闲块,使得一个或更多个空闲块能够被传送至常规驱动器。照此,在该示例中,不需要在706处的指定之前执行垃圾收集或另外地使高速缓冲存储器块空闲。然而,在步骤706的指定之后,可能需要执行垃圾收集以便增加空高速缓冲存储器块,使得满足最小值。
对于常规驱动器是满的时的情形来说,始终确保存在至少最小数量的空高速缓冲存储器块是有利的(例如,利用的LBA范围等于用户容量)。如果没有维持最小数量的空高速缓冲存储器块,则高速缓冲存储器通常通过将来自高速缓冲存储器的数据垃圾收集至常规驱动器中来使块空闲。然而,当常规驱动器是满的时这将是不可能的,因为无处放置来自高速缓冲存储器的有效数据。照此,该情形发生时,可以期望总是维持某一最小数量的空高速缓冲存储器块。另一优点是能够相当快地完成缩小大小(例如,不需要等待垃圾收集,在一些系统中仅允许垃圾收集在特定时间处和/或在已经执行特定数量的主机访问之后发生)。
下面的附图示出可以执行图7的高速缓冲存储器缩小大小的过程的示例性更大上下文。
图8是图示用于写入至固态储存设备(包括高速缓冲存储器和常规驱动器)的过程的实施例的流程图。在所示示例中,该过程图示高速缓冲存储器缩小大小的过程如何或何时被合并至固态储存系统的操作的大上下文中的示例。该过程可以由固态储存设备控制器(诸如,图2中的控制器200)执行。
在800处,主机数据被写入至高速缓冲存储器。在该示例中,新写入数据总是被写入至高速缓冲存储器中,即使其最终目的地是常规驱动器。在一些情况下,例如,如果数据被分类为热数据或者主机已经指示写入数据应当被储存在高速缓冲存储器中,则数据可以保持在那里。可替代地,如果数据被分类为冷数据或者主机指示其应当被储存在常规驱动器中,则数据可以被传送至常规驱动器。例如,与常规驱动器相比,数据可以更快地写入高速缓冲存储器,因此为了加速写入时间,数据被首先写入高速缓冲存储器,然后从高速缓冲存储器复制(如果需要)到常规驱动器。
在802处,判断开放的高速缓冲存储器块是否由主机数据充满。例如,当将主机数据写入至高速缓冲存储器时,高速缓冲存储器中的当前开放块可以变满并且需要在高速缓冲存储器中开放主机数据被指向和被写入的新块。如果在802处开放的高速缓冲存储器块是不满的,则该过程返回至步骤800处的写入主机数据。例如,开放的高速缓冲存储器块可能还未完全满,因此不需要开放新块。
如果在步骤802处确定开放的高速缓冲存储器块是满的,则在步骤804处判断最小数量的空高速缓冲存储器块是否可用。类似于上述示例,在高速缓冲存储器中维持最小数量的空高速缓冲存储器块。如果在步骤804处最小数量的空高速缓冲存储器块可用,则在806处开放高速缓冲存储器块以及在步骤800处写入更多的主机数据。
如果在步骤804处最小数量的空高速缓冲存储器块不可用,则在808处对高速缓冲存储器执行垃圾收集,其中在摄取的高速缓冲存储器块中的有效数据被输出至常规驱动器。这导致块在高速缓冲存储器中被空闲。
在810处,判断垃圾收集是否已经实现最小数量的空高速缓冲存储器块。如果是,则在812处重置大小再分配标志并且该过程结束。注意在步骤812处清除该标志使能够操作另一个高速缓冲存储器重调大小过程(参见例如,图7中的步骤702处的检查的描述)。
如果在步骤810处通过垃圾收集未实现最小数量的空高速缓冲存储器块,则在814处判断开放的常规驱动器块是否根据垃圾收集而充满。如果是,则执行图7的过程(即,缩小高速缓冲存储器的大小,这导致空闲块被增加至常规驱动器)。
在执行图7的过程之后,在步骤816处,为使用空常规驱动器块(其来自高速缓冲存储器缩小大小的过程)的垃圾收集过程开放常规驱动器块。在步骤816处开放常规驱动器块之后,或者如果在步骤814处决定不开放常规驱动器块,则在步骤808处再次执行垃圾收集。
图8中示出的过程是相对详细的示例。更一般地,可以在步骤816处开放常规驱动器块之前执行图7的过程,然后在步骤808处执行垃圾收集。将高速缓冲存储器缩小大小的过程合并至垃圾收集过程的一个优点是高速缓冲存储器的垃圾收集过程已经存在并且有时间被最优化。即,已经存在减少高速缓冲存储器的大小的过程(并且该过程有时间被细化),因此不需要“无谓的重复劳动”。第二优点是高速缓冲存储器的垃圾收集必须发生,因此同时发生高速缓冲存储器缩小大小的操作没有引入新的开销操作。
自然地,在一些情况下可以增大高速缓冲存储器的大小。以下是这种过程的示例。
图9是图示高速缓冲存储器扩大大小的过程的实施例的流程图。在一些实施例中,图1中的步骤104包括图9的过程。在900处,判断是否增大高速缓冲存储器大小。如果是,则在902处判断最小数量的空常规驱动器块是否可用。如在以上示例中,该系统确保在常规驱动器(就像高速缓冲存储器)中至少存在某一最小数量的空块。
如果在902处最小数量的空常规驱动器块可用,则在908处将一个或更多个空常规驱动器块指定为空高速缓冲存储器块。如果在902处最小数量的空常规驱动器块不可用,则该系统通过安排常规驱动器的垃圾收集来使一些块空闲。在该示例中,垃圾收集等待直到某一预定义时间或预定义事件,以便缩减开销写入(例如,如写入放大所测量的)。
步骤906查看垃圾收集是否已经完成。该过程将在步骤906处等待直到垃圾收集已经完成。一旦在步骤906处垃圾收集已经完成,或如果在步骤902处最小数量的空常规驱动器块是可用的,则在908处一个或更多个空常规驱动器块被指定为空高速缓冲存储器块。
磨损均衡(wear leveling)是通过其具有较低P/E计数的块被空闲使得新空闲的块有希望能够被写入,从而导致固态储存设备的P/E计数更加均等的过程。不仅在高速缓冲存储器和常规驱动器中进行磨损均衡,还在高速缓冲存储器与常规驱动器之间进行磨损均衡,使得所有块同时磨损(例如,独立于它们是在高速缓冲存储器中还是在常规驱动器中)。下面的附图示出可以有助于磨损均衡的示例性块交换过程。在一些实施例中,结合图1来执行下面的过程。
图10是图示有助于磨损均衡的块交换过程的实施例的流程图。在所示示例中,独立地对高速缓冲存储器和常规驱动器执行垃圾收集和磨损均衡(例如,其中对于高速缓冲存储器和常规驱动器中的源块(source block)和/或目的块(destination block),垃圾收集和/或磨损均衡过程使用不同的选择技术),以及每当对高速缓冲存储器或常规驱动器执行磨损均衡或垃圾收集时可以执行该过程。在该示例中,假设高速缓冲存储器和常规驱动器中的每个具有它们自己的空块池或空闲块池。不存在(例如)高速缓冲存储器和常规驱动器二者共享的公共空块池(至少在这个例子中)。
在1000处,判断高速缓冲存储器是否具有比常规驱动器高的平均P/E计数。如果是,则在1002处,具有最高P/E计数的空闲高速缓冲存储器块与具有最低P/E计数的空闲常规驱动器块交换。另一方面,如果常规驱动器具有较高P/E计数,则在1004处,具有最低P/E计数的空闲高速缓冲存储器块与具有最高P/E计数的空闲常规驱动器块交换。
上述过程的一个优点是其考虑了当前系统条件,使得储存设备(即,高速缓冲存储器或常规驱动器)的变得更加磨损的部分从驱动器的其他部分得到具有低(较低)P/E 计数的块。另一优点是其不需要(额外)数据写入,因此其具有低的开销且不影响WA。
注意以上过程是被动过程,并且可以执行更主动或积极的技术,其中额外垃圾收集操作和/或新垃圾收集操作和/或磨损均衡操作被主动触发以使块空闲并且随后交换块。例如,图10中示出的过程不采取行动并且等待使用现存的或当前的垃圾收集操作和/或磨损均衡操作来块被空闲。自然地,更主动或更积极的交换技术将对WA做出不利的贡献。
虽然已经出于清楚理解的目的相当详细地描述了前述实施例,但是本发明不局限于所提供的细节。存在很多实现本发明的可替换方式。公开的实施例是说明性的而不是限定性的。
通过以上实施例可以看出,本发明提供以下技术方案。
技术方案1.一种系统,包括:
固态储存设备;以及
固态储存设备控制器,被配置为:
获取与固态储存设备关联的总字节写入TBW需求;
至少部分地基于TBW需求来确定与固态储存设备关联的高速缓冲存储器的大小;以及
将高速缓冲存储器的大小调整为确定大小。
技术方案2.如技术方案1所述的系统,其中,固态储存设备控制器包括半导体器件,半导体器件包括下列项中的一个或更多个:专用集成电路ASIC或现场可编程门阵列FPGA。
技术方案3.如技术方案1所述的系统,其中,高速缓冲存储器包括多个单级单元SLC,而固态储存设备的常规驱动器部分包括下列项中的一个或更多个:多个多级单元 MLC或多个三级单元TLC。
技术方案4.如技术方案1所述的系统,其中,固态储存设备控制器还被配置为:
判断是否已经满足一个或更多个固定大小模式标准;
如果已经满足固定大小模式标准,则:
获取固定大小;以及
将高速缓冲存储器的大小调整为固定大小;以及
如果未满足固定大小模式标准,则执行获取、判断和调整的步骤。
技术方案5.如技术方案1所述的系统,其中,固态储存设备控制器被配置为确定高速缓冲存储器的大小,包括:
确定(1)高速缓冲存储器大小与(2)可变大小模式中的剩余编程和擦除P/E计数的多个组合,所述多个组合不违反TBW需求;以及
选择所述多个组合中的一个,其中,与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。
技术方案6.如技术方案5所述的系统,其中,确定所述多个组合至少部分地基于固态储存设备在可变大小模式之后的固定大小模式期间的未来状态。
技术方案7.如技术方案1所述的系统,其中:
高速缓冲存储器的大小被缩小;以及
固态储存设备控制器被配置为缩小高速缓冲存储器的大小,包括:
判断是否设置了大小再分配标志;以及
如果确定未设置大小再分配标志,则:
设置大小再分配标志;以及
将一个或更多个空高速缓冲存储器块指定为空常规驱动器块。
技术方案8.如技术方案7所述的系统,其中,固态储存设备控制器还被配置为:
对高速缓冲存储器执行垃圾收集过程,其中摄取的高速缓冲存储器块中的有效数据被输出至常规驱动器;以及
为使用空常规驱动器块的垃圾收集过程开放常规驱动器块,空常规驱动器块来自高速缓冲存储器缩小大小的过程。
技术方案9.如技术方案1所述的系统,其中固态储存设备控制器还被配置为:
判断高速缓冲存储器是否具有比常规驱动器高的平均编程和擦除P/E计数;
如果确定高速缓冲存储器具有较高的平均P/E计数,则将具有最高P/E计数的一个或更多个空闲高速缓冲存储器块与具有最低P/E计数的一个或更多个空闲常规驱动器块交换;以及
如果确定常规驱动器具有较高的平均P/E计数,则将具有最低P/E计数的一个或更多个空闲高速缓冲存储器块与具有最高P/E计数的一个或更多个空闲常规驱动器块交换。
技术方案10.一种方法,包括:
获取与固态储存设备关联的总字节写入TBW需求;
至少部分地基于TBW需求来确定与固态储存设备关联的高速缓冲存储器的大小;以及
将高速缓冲存储器的大小调整为确定大小。
技术方案11.如技术方案10所述的方法,其中所述方法由半导体器件执行,半导体器件包括下列项中的一个或更多个:专用集成电路ASIC或现场可编程门阵列FPGA。
技术方案12.如技术方案10所述的方法,其中高速缓冲存储器包括多个单级单元SLC,而固态储存设备的常规驱动器部分包括下列项中的一个或更多个:多个多级单元 MLC或多个三级单元TLC。
技术方案13.如技术方案10所述的方法,还包括:
判断是否已经满足一个或更多个固定大小模式标准;
如果已经满足固定大小模式标准,则:
获取固定大小;以及
将高速缓冲存储器的大小调整为固定大小;以及
如果未满足固定大小模式标准,则执行获取、判断和调整的步骤。
技术方案14.如技术方案10所述的方法,其中,确定高速缓冲存储器的大小包括:
确定(1)高速缓冲存储器大小和(2)可变大小模式中的剩余编程和擦除P/E计数的多个组合,所述多个组合不违反TBW需求;以及
选择所述多个组合中的一个,其中,与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。
技术方案15.如技术方案14所述的方法,其中,确定所述多个组合至少部分地基于固态储存设备在可变大小模式之后的固定大小模式期间的未来状态。
技术方案16.如技术方案10所述的方法,其中:
高速缓冲存储器的大小被缩小;以及
缩小高速缓冲存储器的大小,包括:
判断是否设置了大小再分配标志;以及
如果确定未设置大小再分配标志,则:
设置大小再分配标志;以及
将一个或更多个空高速缓冲存储器块指定为空常规驱动器块。
技术方案17.如技术方案16所述的方法还包括:
对高速缓冲存储器执行垃圾收集过程,其中摄取的高速缓冲存储器块中的有效数据被输出至常规驱动器;以及
为使用空常规驱动器块的垃圾收集过程开放常规驱动器块,空常规驱动器块来自高速缓冲存储器缩小大小的过程。
技术方案18.如技术方案10所述的方法还包括:
判断高速缓冲存储器是否具有比常规驱动器高的平均编程和擦除P/E计数;
如果确定高速缓冲存储器具有较高的平均P/E计数,则将具有最高P/E计数的一个或更多个空闲高速缓冲存储器块与具有最低P/E计数的一个或更多个空闲常规驱动器块交换;以及
如果确定常规驱动器具有较高的平均P/E计数,则将具有最低P/E计数的一个或更多个空闲高速缓冲存储器块与具有最高P/E计数的一个或更多个空闲常规驱动器块交换。
技术方案19.一种计算机程序产品,所述计算机程序产品实现为非临时计算机可读储存介质并且包括计算机指令,所述计算机指令用于:
获取与固态储存设备关联的总字节写入TBW需求;
至少部分地基于TBW需求来确定与固态储存设备关联的高速缓冲存储器的大小;以及
将高速缓冲存储器的大小调整为确定大小。
技术方案20.如技术方案19所述的计算机程序产品,其中确定高速缓冲存储器的大小包括:
确定(1)高速缓冲存储器大小和(2)可变大小模式中的剩余编程和擦除P/E计数的多个组合,所述多个组合不违反TBW需求;以及
选择所述多个组合中的一个,其中,与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。

Claims (20)

1.一种固态储存系统,包括:
固态储存设备,其包括高速缓冲存储器并构造成以可变大小模式和固定大小模式操作,在可变大小模式中,允许高速缓冲存储器的大小改变,而在固定大小模式中,高速缓冲存储器的大小是固定的;以及
固态储存设备控制器,被配置为:
获取与固态储存设备关联的总字节写入需求;
至少部分地基于总字节写入需求以及剩余的编程和擦除P/E计数来确定高速缓冲存储器的大小;
当编程和擦除P/E计数小于一最大计数时,将高速缓冲存储器的大小调整为确定大小;以及
当剩余的编程和擦除P/E计数大于或等于最大计数时,高速缓冲存储器转换至固定大小模式,将高速缓冲存储器的大小调整到固定的大小。
2.如权利要求1所述的固态储存系统,其中,固态储存设备控制器包括半导体器件,半导体器件包括下列项中的一个或更多个:专用集成电路ASIC或现场可编程门阵列FPGA。
3.如权利要求1所述的固态储存系统,其中,高速缓冲存储器包括多个单级单元SLC,而固态储存设备的常规驱动器部分包括下列项中的一个或更多个:多个多级单元MLC或多个三级单元TLC。
4.如权利要求1所述的固态储存系统,其中,固态储存设备控制器还被配置为:
判断是否已经满足一个或更多个固定大小模式标准;
如果已经满足固定大小模式标准,则:
获取固定大小;以及
将高速缓冲存储器的大小调整为固定大小;以及
如果未满足固定大小模式标准,则执行获取、判断和调整的步骤。
5.如权利要求1所述的固态储存系统,其中,固态储存设备控制器被配置为确定高速缓冲存储器的大小,包括:
确定(1)高速缓冲存储器大小与(2)可变大小模式中的剩余编程和擦除P/E计数的多个组合,所述多个组合不违反总字节写入需求;以及
选择所述多个组合中的一个,其中,与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。
6.如权利要求5所述的固态储存系统,其中,确定所述多个组合至少部分地基于固态储存设备在可变大小模式之后的固定大小模式期间的未来状态。
7.如权利要求1所述的固态储存系统,其中:
高速缓冲存储器的大小被缩小;以及
固态储存设备控制器被配置为缩小高速缓冲存储器的大小,包括:
判断是否设置了大小再分配标志;以及
如果确定未设置大小再分配标志,则:
设置大小再分配标志;以及
将一个或更多个空高速缓冲存储器块指定为空常规驱动器块。
8.如权利要求7所述的固态储存系统,其中,固态储存设备控制器还被配置为:
对高速缓冲存储器执行垃圾收集过程,其中摄取的高速缓冲存储器块中的有效数据被输出至常规驱动器;以及
为使用空常规驱动器块的垃圾收集过程开放常规驱动器块,空常规驱动器块来自高速缓冲存储器缩小大小的过程。
9.如权利要求1所述的固态储存系统,其中固态储存设备控制器还被配置为:
判断高速缓冲存储器是否具有比常规驱动器高的平均编程和擦除P/E计数;
如果确定高速缓冲存储器具有较高的平均P/E计数,则将具有最高P/E计数的一个或更多个空闲高速缓冲存储器块与具有最低P/E计数的一个或更多个空闲常规驱动器块交换;以及
如果确定常规驱动器具有较高的平均P/E计数,则将具有最低P/E计数的一个或更多个空闲高速缓冲存储器块与具有最高P/E计数的一个或更多个空闲常规驱动器块交换。
10.一种设置高速缓冲存储器的大小的方法,包括:
获取与固态储存设备关联的总字节写入需求,所述固态储存设备包括高速缓冲存储器并构造成以可变大小模式和固定大小模式操作,在可变大小模式中,允许高速缓冲存储器的大小改变,而在固定大小模式中,高速缓冲存储器的大小是固定的;
至少部分地基于总字节写入需求以及剩余的编程和擦除P/E计数来确定高速缓冲存储器的大小;
当编程和擦除P/E计数小于一最大计数时,将高速缓冲存储器的大小调整为确定大小,以及
当剩余的编程和擦除P/E计数大于或等于最大计数时,高速缓冲存储器转换至固定大小模式,将高速缓冲存储器的大小调整到固定的大小。
11.如权利要求10所述的方法,其中所述方法由半导体器件执行,半导体器件包括下列项中的一个或更多个:专用集成电路ASIC或现场可编程门阵列FPGA。
12.如权利要求10所述的方法,其中高速缓冲存储器包括多个单级单元SLC,而固态储存设备的常规驱动器部分包括下列项中的一个或更多个:多个多级单元MLC或多个三级单元TLC。
13.如权利要求10所述的方法,还包括:
判断是否已经满足一个或更多个固定大小模式标准;
如果已经满足固定大小模式标准,则:
获取固定大小;以及
将高速缓冲存储器的大小调整为固定大小;以及
如果未满足固定大小模式标准,则执行获取、判断和调整的步骤。
14.如权利要求10所述的方法,其中,确定高速缓冲存储器的大小包括:
确定(1)高速缓冲存储器大小和(2)可变大小模式中的剩余编程和擦除P/E计数的多个组合,所述多个组合不违反总字节写入需求;以及
选择所述多个组合中的一个,其中,与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。
15.如权利要求14所述的方法,其中,确定所述多个组合至少部分地基于固态储存设备在可变大小模式之后的固定大小模式期间的未来状态。
16.如权利要求10所述的方法,其中:
高速缓冲存储器的大小被缩小;以及
缩小高速缓冲存储器的大小,包括:
判断是否设置了大小再分配标志;以及
如果确定未设置大小再分配标志,则:
设置大小再分配标志;以及
将一个或更多个空高速缓冲存储器块指定为空常规驱动器块。
17.如权利要求16所述的方法还包括:
对高速缓冲存储器执行垃圾收集过程,其中摄取的高速缓冲存储器块中的有效数据被输出至常规驱动器;以及
为使用空常规驱动器块的垃圾收集过程开放常规驱动器块,空常规驱动器块来自高速缓冲存储器缩小大小的过程。
18.如权利要求10所述的方法还包括:
判断高速缓冲存储器是否具有比常规驱动器高的平均编程和擦除P/E计数;
如果确定高速缓冲存储器具有较高的平均P/E计数,则将具有最高P/E计数的一个或更多个空闲高速缓冲存储器块与具有最低P/E计数的一个或更多个空闲常规驱动器块交换;以及
如果确定常规驱动器具有较高的平均P/E计数,则将具有最低P/E计数的一个或更多个空闲高速缓冲存储器块与具有最高P/E计数的一个或更多个空闲常规驱动器块交换。
19.一种非临时计算机可读储存介质,其上储存有计算机指令,所述计算机指令被处理器执行时实现以下步骤:
获取与固态储存设备关联的总字节写入需求,所述固态储存设备包括高速缓冲存储器并构造成以可变大小模式和固定大小模式操作,在可变大小模式中,允许高速缓冲存储器的大小改变,而在固定大小模式中,高速缓冲存储器的大小是固定的;
至少部分地基于总字节写入需求以及剩余的编程和擦除P/E计数来确定高速缓冲存储器的大小;
当编程和擦除P/E计数小于一最大计数时,将高速缓冲存储器的大小调整为确定大小,以及
当剩余的编程和擦除P/E计数大于或等于最大计数时,高速缓冲存储器转换至固定大小模式,将高速缓冲存储器的大小调整到固定的大小。
20.如权利要求19所述的非临时计算机可读储存介质,其中确定高速缓冲存储器的大小的步骤包括:
确定(1)高速缓冲存储器大小和(2)可变大小模式中的剩余编程和擦除P/E计数的多个组合,所述多个组合不违反总字节写入需求;以及
选择所述多个组合中的一个,其中,与选中组合对应的高速缓冲存储器大小是确定的高速缓冲存储器大小,以及与选中组合对应的剩余P/E计数与可变大小模式的结束相关联。
CN201510642769.8A 2014-10-06 2015-09-30 考虑总字节写入需求时设置高速缓冲存储器的大小 Active CN105487986B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462060387P 2014-10-06 2014-10-06
US62/060,387 2014-10-06
US14/843,632 2015-09-02
US14/843,632 US10127157B2 (en) 2014-10-06 2015-09-02 Sizing a cache while taking into account a total bytes written requirement

Publications (2)

Publication Number Publication Date
CN105487986A CN105487986A (zh) 2016-04-13
CN105487986B true CN105487986B (zh) 2021-05-07

Family

ID=55632911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510642769.8A Active CN105487986B (zh) 2014-10-06 2015-09-30 考虑总字节写入需求时设置高速缓冲存储器的大小

Country Status (2)

Country Link
US (1) US10127157B2 (zh)
CN (1) CN105487986B (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042565B2 (en) * 2014-10-16 2018-08-07 Futurewei Technologies, Inc. All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
US20160225459A1 (en) * 2015-01-30 2016-08-04 Micron Technology, Inc. Apparatuses operable in multiple power modes and methods of operating the same
US9697134B2 (en) 2015-06-10 2017-07-04 Micron Technology, Inc. Memory having a static cache and a dynamic cache
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
CN108121663B (zh) * 2016-11-29 2022-05-03 群联电子股份有限公司 数据存储方法、存储器存储装置及存储器控制电路单元
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
CN111902804B (zh) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的系统和方法
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
CN113168377B (zh) 2018-10-29 2024-04-23 美光科技公司 Slc高速缓存分配
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10891065B2 (en) * 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US20210042236A1 (en) * 2019-08-06 2021-02-11 Micron Technology, Inc. Wear leveling across block pools
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11256620B1 (en) * 2020-11-13 2022-02-22 Micron Technology, Inc. Cache management based on memory device over-provisioning
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576330A (zh) * 2009-06-12 2012-07-11 提琴存储器公司 具有持久化无用单元收集机制的存储系统
CN103080911A (zh) * 2010-06-30 2013-05-01 桑迪士克科技股份有限公司 存储器块的先占式垃圾回收

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496715B1 (en) * 2003-07-16 2009-02-24 Unisys Corporation Programmable cache management system and method
US7350046B2 (en) * 2004-04-02 2008-03-25 Seagate Technology Llc Managed reliability storage system and method monitoring storage conditions
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US7577787B1 (en) * 2006-12-15 2009-08-18 Emc Corporation Methods and systems for scheduling write destages based on a target
US8825718B2 (en) * 2006-12-28 2014-09-02 Oracle America, Inc. Methods and apparatus for marking objects for garbage collection in an object-based memory system
US7865658B2 (en) * 2007-12-31 2011-01-04 Sandisk Il Ltd. Method and system for balancing host write operations and cache flushing
US8166229B2 (en) * 2008-06-30 2012-04-24 Intel Corporation Apparatus and method for multi-level cache utilization
US8112585B2 (en) * 2009-04-30 2012-02-07 Netapp, Inc. Method and apparatus for dynamically switching cache policies
US8775737B2 (en) * 2010-12-02 2014-07-08 Microsoft Corporation Efficient cache management
US9141527B2 (en) * 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8694754B2 (en) * 2011-09-09 2014-04-08 Ocz Technology Group, Inc. Non-volatile memory-based mass storage devices and methods for writing data thereto
US9251059B2 (en) * 2011-09-23 2016-02-02 Avalanche Technology, Inc. Storage system employing MRAM and redundant array of solid state disk
US9767032B2 (en) * 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US8838891B2 (en) * 2012-04-13 2014-09-16 Lsi Corporation SSD cache expansion using overprovisioned space
US20130346812A1 (en) * 2012-06-22 2013-12-26 Micron Technology, Inc. Wear leveling memory using error rate
US9348743B2 (en) * 2013-02-21 2016-05-24 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576330A (zh) * 2009-06-12 2012-07-11 提琴存储器公司 具有持久化无用单元收集机制的存储系统
CN103080911A (zh) * 2010-06-30 2013-05-01 桑迪士克科技股份有限公司 存储器块的先占式垃圾回收

Also Published As

Publication number Publication date
US20160098350A1 (en) 2016-04-07
CN105487986A (zh) 2016-04-13
US10127157B2 (en) 2018-11-13

Similar Documents

Publication Publication Date Title
CN105487986B (zh) 考虑总字节写入需求时设置高速缓冲存储器的大小
US10983907B1 (en) Nonvolatile memory controller that supports host selected data movement based upon metadata generated by the nonvolatile memory controller
TWI647702B (zh) 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法
TWI678619B (zh) 包含動態超區塊之記憶體裝置及相關方法與電子系統
TWI652679B (zh) 記憶體控制器、記憶體系統及控制方法
TWI720512B (zh) 具有包含靜態及動態單元之混合快取記憶體裝置及電子系統以及相關方法
US8103820B2 (en) Wear leveling method and controller using the same
TWI437439B (zh) 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器
TWI460590B (zh) 用於資料儲存之方法及設備
JP6266019B2 (ja) データストレージシステム向けの優先度に基づくガベージコレクション
CN109144887B (zh) 存储器系统及控制非易失性存储器的控制方法
US20140095555A1 (en) File management device and method for storage system
US20150278104A1 (en) Hybrid memory device, memory system including same and data processing method
CN105808156A (zh) 将数据写入固态硬盘的方法及固态硬盘
KR20100009464A (ko) 메모리 스토리지 장치 및 그 제어 방법
TW201227739A (en) Method for performing block management, and associated memory device and controller thereof
CN113015965A (zh) 基于小计写入计数器执行混合损耗均衡操作
US11645006B2 (en) Read performance of memory devices
US20170199680A1 (en) System and method of write amplification factor mitigation and flash lifespan extension
CN114746834A (zh) 基于分区状态的分区附加命令调度
TW202036300A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11036414B2 (en) Data storage device and control method for non-volatile memory with high-efficiency garbage collection
CN114664337A (zh) 调整闪速存储器设备的写窗口大小的方法和装置
CN117369717A (zh) 用于存储设备中的数据放置的系统、方法和装置
Lim Efficient IO and Layout Management Issue of Filesystem for Flash device

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