用于数据存储系统的基于优先级的垃圾收集的制作方法

文档序号:9355170阅读:484来源:国知局
用于数据存储系统的基于优先级的垃圾收集的制作方法
【技术领域】
[0001]本公开涉及用于计算机系统的数据存储系统。更特别地,本公开涉及用于数据存储系统的基于优先级的垃圾收集。
【背景技术】
[0002]数据存储系统在其正常操作过程中执行很多整理操作。例如,经常对可能同时包含有效和无效数据两者的存储器区域执行垃圾收集。当选择用于垃圾收集的一个区域时,垃圾收集操作将该存储器区域内的有效数据复制到存储器中的新位置,并接着擦除或释放整个区域,从而使该区域可用于未来的数据存储。然而,执行垃圾收集涉及很大的开销,例如在使用固态存储器存储数据的情况下导致增大的写入放大。因此,期望提供更高效的垃圾收集机制。
【附图说明】
[0003]现在将参考以下绘图描述实施本发明的各个特征的系统和方法,其中:
[0004]图1示出了根据本发明的一个实施例的实现基于优先级的垃圾收集的主机系统和数据存储系统的组合。
[0005]图2示出了根据本发明的一个实施例的基于优先级信息的排序。
[0006]图3示出了根据本发明的一个实施例的基于优先级的垃圾收集的操作。
[0007]图4示出了根据本发明的另一实施例的基于优先级的垃圾收集的流程图。
[0008]图5示出了根据本发明的一个实施例选择用于垃圾收集的一个或多个区域。
【具体实施方式】
[0009]虽然描述了一些实施例,但这些实施例仅是通过示例的方式呈现,并不是为了限制保护的范围。事实上,本文中描述的新颖的方法和系统可以以多种其他形式实施。并且,可以对本文中描述的方法和系统的形式进行各种省略、替换或改变而不背离保护的范围。
[0010]
[0011]数据存储系统(例如闪速存储设备)执行内部系统操作,例如垃圾收集、损耗均衡、坏块管理等,以提高性能和寿命。垃圾收集可涉及将存储在一存储器区域中的有效数据复制到另一存储器区域,并进一步指示之前的存储器区域不再存储任何有效数据。为了确定优先次序,垃圾收集可利用仍然保留在待被垃圾收集的存储器区域中的无效数据的量。然而,垃圾收集操作涉及可观的开销,并且仅基于无效数据的量来确定垃圾收集的优先次序可引入不合需要的低效率。例如,所存储的数据可与不同的优先等级相关联,并且当执行垃圾收集时考虑数据的优先级是有利的。
[0012]本发明的实施例涉及在执行垃圾收集时考虑所存储数据的优先级的垃圾收集。在一个实施例中,非易失性固态存储器(NVSM)作为混合磁盘驱动器中的高速缓存,该混合磁盘驱动器用旋转磁介质与NVSM配对。在对NVSM中的存储区域进行垃圾收集期间,优先级信息可用于确定是否,例如,要从高速缓存中移动数据、逐出数据,整合高速缓存中的数据等。例如,高优先级数据可被移动到不同的存储器区域以保留在垃圾收集期间所收集的有效数据,而低优先级数据可从高速缓存中被逐出。在略高于被逐出的数据的优先级的某个优先级范围内的数据可在另一存储器区域中被整合。由于这样的数据很有可能在稍后被逐出并且从垃圾收集的角度来看成为无效数据,在垃圾收集时对很可能被无效的数据执行这样的整合能够减少开销并提高与未来的垃圾收集操作相关联的效率。此外,优先级信息可用于决定将数据从高速缓存清理到另一存储介质,例如磁盘。例如,可以周期性地将存储在高速缓存中的非冗余的低优先级数据清理到另一存储介质。这可保证可能在稍后成为从高速缓存逐出的候选的数据被同步。
[0013]在一些实施例中,优先级信息可以是下面中的一个或多个的组合:由主机系统提供的优先级(例如,作为写数据指令的一部分)、访问数据的频率、自最后一次访问数据以来的持续时间、读取数据对写入数据的频率(例如,读写比)、优先等级内数据的相对重要性、数据是否已经与其他存储设备同步,等等。例如,频繁被访问的数据可被赋予更高的优先级,这是因为将频繁被访问的数据保持在高速缓存中能够提高数据存储系统的性能。另例,比其他数据较新近地被访问的数据可被赋予更高的优先级,这是因为这样较新近地被访问的数据很有可能在未来再次被访问。再例如,读比写更频繁的数据可被赋予更高的优先级,这是因为将这样频繁被读取的数据保持在高速缓存中能够在降低NVSM损耗的同时提高性能。在一些实施例中,可基于一个或多个上述因素的加权组合来赋予优先级。
[0014]为了简化和说明的目的,下面的描述将集中在非易失性存储器阵列150作为磁存储设备160的高速缓存存储器这样的示例实施例。然而,本公开的范围并不限于这样的实施例。例如,在其他实施例中,代替磁存储设备160,数据存储系统120可包括另一类型的数据存储器,例如第二非易失性存储器阵列。例如,非易失性存储器阵列150可包括一种存储器,这种存储器提供比第二非易失性存储器阵列中所使用的那种存储器更快的写/读性能。在一些实施例中,非易失性存储器阵列150可作为在远程位置的数据存储设备的高速缓存,并且数据的同步可通过一个或多个网络连接发生。
[0015]系统概沐
[0016]图1示出了根据本发明的一个实施例的实现基于优先级的垃圾收集的主机系统和数据存储系统的组合100。如图所示,数据存储系统120(例如,混合磁盘驱动器)包括控制器130和非易失性存储器阵列150,以及包括磁介质164的磁存储设备160。非易失性存储器阵列150可包括非易失性存储器,例如闪速集成电路、硫化物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC_RAM或PMCm)、双向统一存储器(OUM)、电阻RAM(RRAM)、NAND存储器(例如,单级单元(SLC)存储器、单级单元(MLC)存储器或它们的任意组合)、N0R存储器、EEPR0M、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他分离的NVM(非易失性存储器)芯片或它们的任意组合。非易失性存储器阵列150可包括一个或多个存储器区域,例如块、页等。存储器区域可包括存储器单元。在一个实施例中,非易失性存储器阵列150可作为磁存储设备160的高速缓存。数据存储系统120可进一步包括其他类型的存储器。
[0017]控制器130可被配置为从主机系统110的存储设备接口模块112 (例如,设备驱动器)接收数据和/或存储器访问命令。通过存储器接口 112传输的存储设备访问命令可包括由主机系统110发布的写数据和读数据命令。读和写命令可指定用于访问数据存储系统120的逻辑地址(例如,逻辑块地址或LBA)。控制器130可在非易失性存储器阵列150中执行接收到的命令。
[0018]数据存储系统120可存储由主机系统110传输的数据。换言之,数据存储系统120可作为主机系统110的存储器。为了便于实现该功能,控制器130可实现逻辑接口。逻辑接口可将数据存储系统的存储器作为一组可用户可在该处存储数据的逻辑地址(例如,连续的地址)呈现给主机系统110。在内部,控制器130可将逻辑地址映射到非易失性存储器阵列150、磁存储设备160、和/或其他存储模块中的各个物理位置或地址。物理位置可被配置为存储数据。控制器130包括被配置为执行非易失性存储器阵列150的垃圾收集的垃圾收集模块132和被配置为将非易失性存储器阵列150中存储的(例如,高速缓存的)数据与磁存储设备160、和/或其他存储模块进行同步的数据清理模块134。在一个实施例中,垃圾收集模块132被配置为执行基于优先级的垃圾收集,包括选择将要对其执行垃圾收集的存储器单元(例如,块)的任务。在一个实施例中,数据清理模块134被配置为执行对数据的基于优先级的清理。
[0019]基于优先级的垃圾收集
[0020]图2示出了根据本发明的一个实施例的基于数据单元的优先级信息的数据单元的排序200。可使用适当的数据结构,例如列表、队列、表格、哈希表、图等来表示排序200。在一个实施例中,排序200可被表示为根据优先级信息排序的队列。例如,排序200可指示根据与所存储数据相关联的优先级信息排序的存储在非易失性存储器阵列150中的数据单元的位置(例如,逻辑地址)。在一个实施例中,可主要根据从主机
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1