用于数据存储系统的动态预留空间的制作方法_2

文档序号:9291648阅读:来源:国知局
30和/或动态预留空间模块132和/或数据压缩模块134产生、跟踪、和/或更新。
[0020]图3示出了根据本发明一个实施例的动态预留空间300。动态预留空间300可以由控制器130和/或动态预留空间模块132和/或数据压缩模块134执行。如所示的,非易失性存储器阵列150可以被分为用户数据部分154和系统数据部分158。另外,存储器阵列150可以包括预留空间部分156。可以基于诸如图2的参数200的一个或多个预留空间参数,调整预留空间部分156的大小。在一个实施例中,可以基于诸如加权平均值的预留空间参数的组合,调整预留空间部分的大小。
[0021]如图3所示的,在一个实施例中,未压缩的用户数据存储在用户数据部分154中。例如当由数据压缩模块134压缩数据时,数据存储系统120恢复存储容量170的量。恢复的存储容量可以被分配用于存储用户数据和/或用于预留空间。
[0022]图4是示出根据本发明一个实施例的动态预留空间的过程400的流程图。过程400可以由控制器130和/或动态预留空间模块132和/或数据压缩模块134执行。过程400在块402开始,在此它执行从主机系统110接收的一个或多个存储命令。例如,过程400可以执行包括用户数据的写入或程序命令。过程400转移到块404,在此,它压缩与存储命令相关联的用户数据。压缩度可以取决于用户数据的类型,较高压缩度可以表示将用户数据压缩到较大程度。例如,可以以高压缩度压缩未压缩的音频和/或视频数据。在一个实施例中,过程400使用无损压缩,例如Lempel-Ziv(LZ)。
[0023]过程400转移到块406,在此它确定由于用户数据压缩而恢复的存储容量的量。在块408,过程400确定和/或更新预留空间参数,例如图2的参数200。过程400转移到块408,在此它确定如何将恢复的存储设备分配用于用户数据存储和/或预留空间。
[0024]在一个实施例中,响应于相比于磨损级别阈值的非易失性存储器阵列150的磨损级别的增大,过程400分配至少部分或全部恢复的存储容量用于预留空间。在此情况下,例如,磨损级别的增大指示非易失性存储器阵列150受到磨损,分配存储容量用于预留空间可以通过减小写入放大而减少磨损率。另一方面,响应于相比于磨损级别阈值的非易失性存储器阵列150的磨损级别的减小,过程400分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,由于非易失性存储器阵列150未受到磨损,因此希望给用户数据分配更多的存储空间以增强非易失性存储器缓存命中率。
[0025]在一个实施例中,响应于相比于不工作单元阈值的不工作(或有故障)非易失性存储器150单元数量的增大,过程400分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,分配可用存储器来存储用户数据可能是有利的。响应于非易失性存储器阵列150中存储的非冗余数据相对于非冗余数据阈值的百分比的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,由于磁存储设备160不接受用于存储的数据(例如因为磁盘未旋转),主机系统110可以将非易失性存储器150用作数据缓存。稍后可以将至少部分缓存的用户数据转储清除(flush)(或同步)到例如磁存储设备160。响应于从非易失性存储器阵列150读取的数据量与写入非易失性存储器阵列的数据量的比率相对于读/写阈值的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,主机系统110可以执行更多的数据取回操作,执行这些操作导致小的或没有写入放大。另一方面,响应于从非易失性存储器阵列150读取的数据量与写入非易失性存储器阵列的数据量的比率相对于读/写阈值的减小,过程400分配至少部分或全部恢复的存储容量用于预留空间。在此情况下,例如,主机系统110可以执行与增大的写入放大相关联的更多数据程序操作。分配更多存储容量用于预留空间可以减小非易失性存储器阵列150的磨损。
[0026]在一个实施例中,响应于相比于数据压缩阈值的数据压缩率的减小,过程400分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,用户数据可以被较少压缩,从而占用更多空间。可以分配更多空间用于存储用户数据。响应于相比于预留空间阈值的预留空间部分的大小的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,预留空间部分大小可能已经增长过大。响应于相比于连续数据写阈值的写入非易失性存储器阵列150的连续数据量与写入非易失性存储器阵列150的非连续数据量的比率的增大,过程400也分配至少部分或全部恢复的存储容量用于存储用户数据。在此情况下,例如,相比于写入非顺序数据,将连续或顺序数据写入非易失性存储器阵列150与较低的写入放大相关联。因而,需要较少的预留空间来实现希望的总写入放大。另一方面,响应于写入非易失性存储器阵列150的连续数据量与写入非易失性存储器阵列150的非连续数据量的比率相对于连续数据写阈值的减小,过程400分配至少部分或全部恢复的存储容量用于预留空间。在此情况下,例如,写入更多的非连续或随机数据,其与增大的写入放大相关联。因此,可以分配更多的存储容量用于预留空间。
[0027]Mik
[0028]利用公开的动态预留空间系统和方法可以导致更有效地使用非易失性存储器,减小写入放大,增大缓存命中率等。可以获得改进的数据存储系统性能和增大的耐久性。
[0029]其他夺化
[0030]本领域技术人员会意识到在一些实施例中可以使用另外的预留空间参数。另外,使用任意适合的线性和/或非线性方法可以组合预留空间参数。此外,公开的系统和方法可以由任何数据存储系统使用,其例如由于存储介质的限制而不能写随机存储器单元。这种数据存储系统也可以包括缓存存储器。此外,用户数据可以包括任何类型数据和/或数据类型的组合,例如由主机提供的数据、由数据存储系统产生的数据等。在公开的过程中实际进行的步骤,例如图4中所示的过程,可以与图中所示的不同。可以使用额外的系统部件,可以组合或省略公开的系统部件。取决于实施例,可以去除上述的某些步骤,可以添加其他步骤。因此,本公开的范围旨在仅参照所附权利要求书来限定。
[0031]尽管说明了某些实施例,但这些实施例仅被示例性地呈现,并非旨在限定保护的范围。实际上,本文所述的创新的方法和系统可以以各种其他形式来体现。而且,在不脱离保护的精神的情况下,可以在本文所述的方法和系统的形式上做出各种省略、替换和变化。所附权利要求书及其等效替代旨在覆盖这样的形式或修改,视其为落在保护的范围和精神内。例如,本文公开的系统和方法可以应用于硬盘驱动器、固态驱动器等。另外,可以额外地或可替换地使用其他形式的存储设备(例如DRAM或SRAM、配有电池的易失性DRAM或SRAM设备、EPROM、EEPROM存储器等)。作为另一个示例,图中所示的各种部件可以被实施为处理器上的软件和/或固件、ASIC/FPGA、或专用硬件。此外,以上公开的特定实施例的特征和属性可以以不同方式组合,以构成另外的实施例,
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1