用于缩放垃圾收集的方法和系统的制作方法

文档序号:8395813阅读:238来源:国知局
用于缩放垃圾收集的方法和系统的制作方法
【技术领域】
[0001] 本发明一般涉及闪存存储器的领域,更特别地涉及垃圾收集缩放(garbage collection scaling)〇
【背景技术】
[0002] 固态驱动器("SSD")是使用集成电路组件作为存储器以永久(persistently)存 储数据的数据存储器件。SSD中的主要存储部件可以是NAND非易失性闪存存储器或NOR非 易失性闪存存储器。NAND闪存和NOR闪存利用浮动栅极晶体管。NAND闪存和NOR闪存按 照它们各自的组件所类似的逻辑门被命名。
[0003] SSD存储器的访问非常类似于块器件(block device),诸如硬盘或存储卡。各块 由许多页构成。页的尺寸可以例如为512、2048或4096字节。数据以称为页的单位被写入 到闪存存储器。在可将新数据写入到页之前,该页必须被擦除。但是,为了擦除页,包含该 页的块被擦除。垃圾收集是如下处理:其中,第一块被清空了包含被重写到第二块的有效数 据的页,并且第一块被擦除以使第一块准备写入新的有效数据。垃圾收集可有助于写入放 大(amplification)。写入放大指的是与闪存存储器和SSD相关的情形,其中写入的物理信 息的实际量是想要写入的逻辑量的倍数。

【发明内容】

[0004] 本发明的实施例提供用于缩放垃圾收集的方法、系统和计算机程序产品。计算 机处理器确定过度供应比(over-provisioning ratio)和主机写入图案(host write pattern)。计算机处理器基于主机写入图案和过度供应比确定写入放大目标。计算机处理 器确定陈旧性(staleness)阈值,其中,陈旧性阈值与块的有效页与该块的总页之比对应。 计算机处理器擦除具有超过陈旧性阈值的陈旧性的第一块。
【附图说明】
[0005] 图1是示出实现本发明实施例的存储环境的功能框图。
[0006]图2是根据本发明实施例的示出用于确定阈值的垃圾收集程序的操作的流程图。
[0007] 图3是根据本发明实施例的示出用于响应于阈值执行垃圾收集的垃圾收集程序 的操作的流程图。
[0008]图4示出根据本发明实施例的执行垃圾收集程序的主机计算系统的部件的框图。
【具体实施方式】
[0009] 本发明的实施例认识到,延迟垃圾收集直到通常需要空页来容纳写入操作导致了 "写入陡壁(Cliff)",这是由于增大写入放大而导致降低写入速度的时点(point)。本发明 的实施例规定主动(proactive)的垃圾收集,以便提供更一致水平的写入放大。本发明的 实施例还规定了确定指示无效页与块的总页之比的陈旧性阈值,并且基于陈旧性阈值执行 垃圾收集,以便提供更一致的写入速度。本发明的实施例规定基于主机写入图案和写入放 大目标来缩放陈旧性阈值。
[0010] 本领域技术人员将知道,本发明的各个方面可以实现为系统、方法或计算机程序 产品。因此,本发明的各个方面可以采取以下形式,即:完全的硬件实施方式,完全的软件实 施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这里可以统 称为"电路"、"模块"或"系统"。此外,本发明的各个方面可以采取在一个或更多个计算机 可读介质中实现的计算机程序产品的形式,该计算机可读介质上实现有计算机可读程序代 码/指令。
[0011] 可以利用计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号 介质或者计算机可读存储介质。计算机可读存储介质例如可以是、但不限于电、磁、光或半 导体的系统、装置或器件,或者前述的任何适当组合。计算机可读存储介质的更具体的例 子(非穷举的列表)将包括以下项目:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读 存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存存储器)、便携式紧凑盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或者前述的任何适当组合。在本文献的背景中,计算机 可读存储介质可以是能包含或存储程序的任何有形介质,该程序供指令执行系统、装置或 者器件使用或者与其结合使用。术语"计算机可读存储介质"不包括计算机可读信号介质。
[0012] 计算机可读信号介质可以包括例如在基带中或者作为载波一部分的传播的数据 信号,在该数据信号中实现有计算机可读程序代码。这种传播的信号可以采取多种形式中 的任一种,包括但不限于电磁的、光的、或其任何适当组合。计算机可读信号介质还可以是 任何的不是计算机可读存储介质并且可以传送、传播或传输用于供指令执行系统、装置或 者器件使用或者与其结合使用的程序的计算机可读介质。
[0013] 计算机可读介质上实现的程序代码可以用任何适当的介质来传输,包括但不限于 无线、有线(wireline)、光纤线缆、RF等等,或者前述的任何适当组合。
[0014] 可以以一种或更多种编程语言的任何组合来编写用于执行本发明的各个方面的 操作的计算机程序代码,所述编程语言包括面向对象的编程语言,诸如Java?(Java是 Oracle在美国、其它国家或者二者的注册商标)、Smalltalk、C++等,并且包括常规的过程 式编程语言,诸如"C"编程语言或类似的编程语言。程序代码可以完全地在用户计算机上 执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上且部分在 远程计算机上执行、或者完全在远程计算机或服务器上执行。在后者的场景中,远程计算机 可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户计算机,或者可 以(例如利用因特网服务提供商通过因特网)连接到外部计算机。
[0015] 下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明的各个方面。将理解,流程图和/或框图的每个方框以及流程图和/或 框图中方框的组合可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算 机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得经由计算 机或其它可编程数据处理装置的处理器执行的所述指令创建了用于实现流程图和/或框 图的一个或多个方框中规定的功能/动作的装置。
[0016] 也可以把这些计算机程序指令存储在计算机可读介质中,所述指令指挥计算机、 其它可编程数据处理装置、或其它器件以特定方式工作,从而,存储在计算机可读介质中的 指令产生出包括实现流程图和/或框图的一个或多个方框中规定的功能/动作的指令的制 造品(article of manufacture) 〇
[0017] 计算机程序指令也可被加载到计算机、其它可编程数据处理装置或其它器件上, 以导致在计算机、其它可编程装置或其它器件上执行一系列的操作步骤,从而产生计算机 实现的处理,使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或 框图的一个或多个方框中规定的功能/动作的处理。
[0018] 现在将参照附图详细描述本发明。
[0019] 图1是示出实现本发明实施例的一般指定为100的存储环境的功能框图。
[0020] 存储环境100包括主机计算系统102。主机计算系统102可以是膝上型计算机、平 板计算机、上网本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话、 或能够与存储系统104通信的任何可编程电子器件。在其它的实施例中,主机计算系统102 可代表利用多个计算机作为计算系统的计算系统,诸如在云计算环境中。在另一实施例中, 主机计算系
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1