闪存高速缓存中的部分数据片段的提升的制作方法

文档序号:6496946阅读:124来源:国知局
闪存高速缓存中的部分数据片段的提升的制作方法
【专利摘要】提供了用于以更高效的方式在次级存储中有效轨道离台的示例方法、系统和计算机程序产品实施例。在一个实施例中,仅通过举例,使用顺序比特的临时比特用于在主存储中控制离台轨道的定时,临时比特和顺序比特被从主存储转移到次级存储。临时比特被允许在从存储上老化。公开了其他系统和计算机程序产品实施例并且提供了相关优点。
【专利说明】闪存高速缓存中的部分数据片段的提升
【技术领域】
[0001]本发明总体上涉及计算机,并且更具体地,涉及用于提升计算存储环境中部分数据片段的机制。
【背景技术】
[0002]在当今社会,计算机系统已非常普通。在计算领域,“高速缓存”通常是指用于存储最近存取的、经常存取的或将来可能存取的数据或指令的较小的、快速的存储器或存储设备。读取或写入高速缓存典型地比比存取其他存储器或存储设备(对于存取时间和/或资源利用率)更廉价。一旦数据被存储在高速缓存中,它可以在高速缓存中被存取而不是重新取回和/或重新计算数据,节省了时间和资源。
[0003]高速缓存可被提供为多级高速缓存。例如,高速缓存系统可以包括“主”高速缓存和“次级”高速缓存。当读取数据时,计算系统或设备可以首先在主高速缓存中查找数据,并且如果该数据不存在,在次级高速缓存中查找该数据。如果该数据不在任一高速缓存中,计算系统或设备可以从盘驱动或其他存储设备检索该数据。当写入数据时,计算系统或设备可以将数据写入到主高速缓存。这个数据最后可以被离台(destage)到次级高速缓存或存储设备以为主高速缓存留出空间。
[0004]在具有多级高速缓存的数据处理系统中,将所谓“部分轨道”或者说不完全满的数据片段写入到次级高速缓存可能有挑战。例如,次级高速缓存上的存储空间可能被浪费。在实现为闪存或闪存高速缓存的次级高速缓存中,存储器典型地实现成本高并且浪费的存储空间可能消耗稀少的资源。此外,返回盘驱动或其他主存储以收集附加的数据填充部分轨道中的“洞”可能引起附加的输入/输出(I/o)活动,也消耗资源并且潜在地降低性能。

【发明内容】

[0005]综上所述,需要有效地将部分数据片段提升到次级高速缓存。因此,并且综上所述,提供用于在具有较低和较高速度级别的高速缓存的计算存储环境中提升部分数据片段的多种示例方法、系统和计算机程序产品实施例。在一个这种实施例中,仅通过例子,配置了数据移动机制。所述机制适于执行至少下列之一:允许部分数据片段在较高速的高速缓存级别保留的时间长于至少一个完整数据片段长,以及基于洞的数量和数据热度度量中至少一个实现用于部分数据片段向较低速的高速缓存级别的移动的优选,其中具有较低数量的洞和较热的数据热度中的至少一个的部分数据片段中的第一个在具有较高数量的洞和较冷的数据热度中的至少一个的部分数据片段中的第二个之前,被移动到较低速的高速缓存级别。
[0006]除了上述示例实施例,提供了多种其他系统和计算机程序产品实施例并且提供相关的优点。已提供上述简介以提出在下面详细说明中进一步说明的简化形式的观点选择。这个简介不是要识别所要求的主题的关键特征或重要特征,也不是要用作帮助确定所要求的主题的范围。所要求的主题不限于解决背景中提及的任一或所有缺点的实现。【专利附图】

【附图说明】
[0007]为了易于理解本发明的优点,将参考附图所示的特定实施例给出以上简要说明的本发明的更具体的说明。理解本发明的这些图示实施例不要认为是限制其范围,通过使用附图将用附加的特异性和细节解释和说明本发明,其中:
[0008]图1所示是可以实现根据本发明的装置和方法的网络和计算环境的一个示例的闻级框图;
[0009]图2所示是可以实现根据本发明的装置和方法的存储系统的一个示例的高级框图;
[0010]图3所示是根据本发明的多级高速缓存的一个实施例的高级框图;
[0011]图4所示是可以在次级高速缓存中实现的多种级别或范围的高级框图;
[0012]图5所示为根据一个实施例的用于有效提升部分数据片段的示例方法的流程图;
[0013]图6所示为用于有效提升部分数据片段的又一实施例的流程图;
[0014]图7所示为用于有效提升部分数据片段的又一实施例的流程图;以及
[0015]图8所示为用于有效提升部分数据片段的另一实施例的流程图。
具体实施例
[0016]为了说明,术语“次级高速缓存”用于指驻留在主高速缓存和存储设备之间的任何高速缓存(包括,例如L2或L3高速缓存),例如盘驱动、带驱动等等。
[0017]参考图1,图示了计算机-网络架构100的一个实施例。提出架构100以示出用于实现这里图示的高速缓存系统的多种场景。仅通过举例提出架构100并且不是要限制。其实,除了示出的网络机构100之外,这里公开的高速缓存系统可以适用于广泛的不同的计算机、服务器、存储系统和网络架构。
[0018]如图所示,计算机-网络架构100可以包括由网络104互连的一个或多个计算机102U06o网络104可以包括,例如,局域网(LAN)104、广域网(WAN) 104、互联网104、内网104等等。在某些实施例中,计算机102、106可以包括客户计算机102和服务器计算机106。通常,客户计算机102可以发起通信会话,而服务器计算机106可以等待来自客户计算机102的请求。在某些实施例中,计算机102和/或服务器106可以连接到一个或多个内部或外部直连的存储系统112 (例如,硬盘驱动、固态驱动、带驱动等等)。计算机102、106和直连存储设备112可以使用协议通信,例如ATA、SATA、SCS1、SAS、Fiber Channel等等。计算机102、106中的任一或全部可以利用这里说明的高速缓存系统从存储设备112存取数据。
[0019]计算机-网络架构100在某些实施例中可以包括服务器106之后的存储网络108,例如存储区域网络(SAN) 108或LAN108(例如,当使用网络连接的存储时)。这个网络108可以将服务器106连接到一个或多个存储系统110,例如单独的硬盘驱动IlOa或固态驱动110a、硬盘驱动或固态驱动的阵列110b、带驱动110c、带库110d、⑶-ROM库等等。当网络108是SAN时,服务器106和存储系统110可以使用网络标准例如Fiber Channel (FC)通信。计算机102、106中的任一或全部可以利用这里说明的高速缓存系统以存储从存储设备110检索的数据。
[0020]参考图2,图示了包含硬盘驱动204和/或固态驱动203的阵列存储系统IlOb的一个实施例。示出存储系统IlOb的内部组件,因为在某些实施例中,高速缓存系统可以被实现在这种存储系统IlOb中,尽管该高速缓存系统也可以适用于其他存储系统110。如所示,存储系统IlOb包括存储控制器200、一个或多个开关202,以及一个或多个存储设备203、204,例如硬盘驱动204或固态驱动203 (例如基于闪存的驱动203)。存储控制器200可以使一个或多个主机106 (例如开放系统和/或大型机服务器106)能存取一个或多个存储设备203、204中的数据。
[0021]在所选的实施例中,存储控制器200包括一个或多个服务器206。所述存储控制器200还可以包括主机适配器208和设备适配器210以将所述存储控制器200分别连接到主机设备106和存储设备203、204。多个服务器206a、206b可以提供冗余以保证数据总是对于连接的主机106可用。因此,当一个服务器206a失败时,另一服务器206b可以保持可操作以保证I/O在主机106和存储设备203、204之间能继续。这个过程可以被称为“失效转移”。
[0022]具有类似图2所示架构的存储系统IlOb的一个例子是1BM?DS8000?企业存储系统。DS8000?是提供盘存储设计用于支持连续操作的高性能、高容量存储控制器。DS8000?系列模型可以使用IBM的P0WER5?服务器206a、206b,其可以与IBM的虚拟化弓I擎技术结合。
[0023]但是,这里公开的高速缓存系统不限于DS8000?企业存储系统110b,可以实现为任何可比的或相似的存储系统110,不论生产商、产品名称或组件或与系统110相关的组件名称。而且,可以从本发明的一个或多个实施例中受益的任何系统被认为是落在本发明的范围内。因此,仅通过举例提出IBM?DS8000?并且不是要限制。
[0024]在所选的实施例中,每个服务器206可以包括一个或多个处理器212 (例如η路对称多处理器)和存储器214。存储器214可以包括易失存储器(例如,RAM)以及非易失存储器(例如R0M、EPR0M、EEPR0M、硬盘、闪存等)。在某些实施例中,易失存储器和非易失存储器可以存储运行在处理器212上的软件模块并且用于存取存储设备203、204中的数据。服务器206可以作为这些软件模块的至少一个实例的宿主。这些软件模块可以管理对存储设备203、204中逻辑卷的所有读取和写入请求。
[0025]在所选的实施例中,存储器214可以包括高速缓存218。每当主机106(例如开放系统和/或大型机服务器106)执行读取操作时,执行读取的服务器206可以从存储设备203、204取回数据并且当它被再次需要时,将它保存在其高速缓存218中。如果数据被主机106再次请求,服务器206可以从高速缓存218取回数据而不是从存储设备203、204取回它,节约了时间和资源。类似地,当主机执行写入时,接收写入请求的服务器106可以将写入存储在其高速缓存218中,并且在稍后的时间将写入离台到存储设备203、204。当写入被存储在高速缓存218中时,所述写入也可以被存储在对立的服务器206的非易失存储(NVS) 220中,使得所述写入当第一服务器206失败时可以被对立的服务器206恢复。
[0026]参考图3,同时继续从总体上参考图2,如前所述,存储系统IlOb可以包括硬盘驱动204和固态驱动(SSD) 203,例如基于闪存的驱动203。SSD203或其他类型固态存储器的I/O性能典型地远高于硬盘驱动204的I/O性能。因为较高的I/O性能,在某些实施例中,固态驱动203可以用于在主高速缓存218和硬盘驱动204之间提供较大的次级高速缓存300。这个较大的次级高速缓存300可以显著提高存储系统IlOb的I/O性能,并且可以在这里称为“闪存高速缓存”。
[0027]使用次级高速缓存300,如果读取请求被服务器106接收,服务器106最初可以在主高速缓存218中查找数据,并且如果该数据不在,在次级高速缓存300 (驻留在固态驱动203中)中查找该数据。如果在两个高速缓存中都没有该数据,服务器106可以从盘驱动204中检索该数据。类似地,当写入数据时,服务器106最初可以将被修改的数据写入到主高速缓存218。这个被修改的数据可以最终被离台到次级高速缓存300以在主高速缓存218留出空间。这个数据然后可以根据需要被离台到盘驱动204以在次级高速缓存300留出空间。
[0028]在某些实施例中,次级高速缓存300可以改变大小以提供大约I %到20%,或者在其他实施例中大约存储系统IlOb的总存储容量的5%。因此,对于包含大约IOTB存储(来自硬盘驱动204和固态驱动203)的存储系统110b,这个存储空间的大约0.5TB可以用作次级高速缓存300。这样大量的次级高速缓存300可以使数据比常规主或次级高速缓存更低频率地从次级高速缓存300离台。作为例子,非常大的次级高速缓存300可以存储写入达一整天,而无须将写入离台到盘驱动204。然后写入可以在晚上或在相对不活跃的时片段期间被离台。高速缓存管理算法可以被重新设计以高效地利用次级高速缓存300中的附加空间并且利用使用大的次级高速缓存300可能的性能提升。
[0029]如图3所示,每个高速缓存218、300可以存储数据302a、302b以及元数据304a、304b。如将在图4中所示,数据302a、302b可以存储为轨道的形式。次级高速缓存300中每个轨道可以具有与其相关的从轨道控制块(STCB)。STCB也可以在这里称为高速缓存闪存控制块(CFCB)。除了其他信息之外,每个轨道的STCB可以包括对链中下一轨道的指针,表明该轨道是空闲或是使用中的信息,以及表明轨道中哪些扇区已被修改的信息。在某些实施例中,所有轨道的STCB可以存储在如所示存储在次级高速缓存300中或别处的STCB表306中ο
[0030]此外,次级高速缓存300中的每个轨道可以具有与其相关的从跨距控制块(SSCB)。SSCB,类似于STCB可以包括诊断和/或统计信息,但是反而关于存储在次级高速缓存300中的跨距(轨道组)。SSCB在这里也可以指高速缓存闪存元件(CFE)。在某些实施例中,用于所有跨距的SSCB可以存储在次级高速缓存300中存储的SSCB表308中,如图所示,或者在别处。
[0031]类似地,主高速缓存218也可以存储与次级高速缓存300相关的元数据304a。例如,主高速缓存218可以存储为次级高速缓存300中的轨道提供目录的次级高速缓存索引表(SCIT)308。在某些实施例中,SCIT308实际上是带有常哈希函数的哈希表。为了在SCIT308中定位具体的轨道,哈希函数可以将轨道标识符(例如轨道号)转化为哈希值。然后可以在SCIT308中查找这个哈希值以找到所述轨道的STCB。可替换地,SCIT308可以结合在主高速缓存218的高速缓存目录中,因此提供存储主高速缓存218和次级高速缓存300的轨道的单个哈希表。在所选的实施例中,SCIT308在主高速缓存218中是保持专属的。通过读取次级高速缓存300中的STCB表306,SCIT308可以被建立或重建(在失效转移、自动恢复或初始微码加载(ML)的情况下)。
[0032]在某些实施例中,主高速缓存218还可以存储表明次级高速缓存300中哪些轨道是空闲的(即未占用)空闲轨道列表(L0FT)310。这个列表310可以用于在次级高速缓存300中定位空闲空间以便将数据从主高速缓存218离台到次级高速缓存300。在所选实施例中,从L0FT310插入或移除轨道可以以日志结构的形式被执行。例如,轨道可以插入在L0FT310末端以及从L0FT310前面删除。L0FT310可以在主高速缓存218中是保持专属的并且可以通过读取次级高速缓存300中的STCB表306被建立或重建。
[0033]主高速缓存218还可以存储轨道的排序树(STOT) 312,其通过“trackid” (轨道id)或一些其他指示符而排序。当轨道从次级高速缓存300离台到盘驱动204时,ST0T312可以用于最小化查找时间(在盘驱动204上)。ST0T312可以在主高速缓存218中是保持专属的并且可以通过读取次级高速缓存300中的STCB表306被建立或重建。
[0034]主高速缓存218也可以存储对于次级高速缓存300中具有一个或多个轨道的每个跨距的对跨距的统计(STATS) 314。“跨距”是指一组跨与附加的奇偶校验信息组合的多个盘被分片段的逻辑上顺序的数据,例如在RAID-5(廉价盘冗余阵列)配置中所使用的。通常,STATS314可以用于确定哪些轨道需要最少数量的盘操作(“diskops”)以从次级高速缓存300离台到盘驱动204。通常,对轨道的离台处罚将是很少的,其中多数轨道出现在一个跨距中。当选择轨道离台时,需要最少数量盘操作的轨道可以被首先离台以使资源利用率最小。在所选实施例中,STATS314可以存储信息,例如对于每个跨距出现在次级高速缓存300中的轨道数,以及在一个跨距中离台轨道所需的盘操作数。在某些实施例中,STATS314可以存储每个跨距的“近期”位。近期位可以在每次逐出(eviction)过程经过跨距时递增。近期位可以每次当一个轨道被加到跨距时被重置。近期位可以用于保持跨距在被活跃地写入入的次级高速缓存300中。STATS314可以在主高速缓存218中是保持专属的并且可以通过读取次级高速缓存300中的STCB表306被建立或重建。
[0035]上述的元数据304a、304b可以被结构化并且被以多种不同的方式存储并且不限于所示的结构或组织。通过举例提供元数据304a、304b以示出一种用于存储和结构化元数据304a、304b的技术。例如,在某些实施例中,数据和元数据可以一起存储在次级高速缓存300中在循环日志结构阵列中。用于结构化和存储元数据304a、304b的其他技术可以被使用并包含在本发明的范围内。
[0036]如前所述,较大的次级高速缓存300的一个优点是该数据可以从次级高速缓存300离台比常规次级高速缓存频率低得多。这可以使更多数据在它被离台到盘驱动204之前能积累在次级高速缓存300中。所以,在所选实施例中,根据本发明的一种装置和方法可被配置以等待数据的全部跨距积累以及在该数据被离台到盘驱动204之前合并在次级高速缓存300中。如上所述,这可以使数据从次级高速缓存300离台到盘驱动204所需的盘操作的数目最小,因此提高了总体系统性能。
[0037]参考图4,在某些实施例中,可以基于占有率执行从次级高速缓存300逐出。例如,可以在次级高速缓存300中定义三个范围:(I)静默;(2)触发;以及(3)高优先级。当次级高速缓存300的占有率处于静默范围时(例如,次级高速缓存300在O和50%满之间),没有数据可以次级高速缓存300逐出。类似地,当高速缓存占有率处于触发范围时(例如,次级高速缓存300在50%和70%满之间),高速缓存逐出可以以正常模式执行直到高速缓存占有率在静默范围内。类似地,当高速缓存占有率处于高优先级范围时(例如,次级高速缓存300大于70%满),高速缓存逐出可以以高优先级模式执行直到高速缓存占有率在触发范围内。仅通过举例提出以上提供的数字范围并且不是要限制。不管逐出模式如何,逐出过程可以将需要最小盘操作数的轨道离台。
[0038]如前所述,由于部分(不完整)数据片段写入到次级高速缓存可能产生挑战,包括浪费有价值的存储器空间以及导致额外的I/o操作。本发明的机制是要通过实现用于将部分数据片段有效提升到次级高速缓存的多种策略解决这些挑战。下面将进一步说明在这些策略中的下列可能的实施例。在第一实施例中,部分数据片段,或者轨道,作为次级高速缓存上的完整轨道(有洞或缺失数据)被写入。在第二实施例中,部分轨道被密集打包在一个或更多高速缓存闪存元件中(CFE)。在第三个可能的实施例中,轨道的多个部分或页分散在次级高速缓存的片段中如空间所定位。
[0039]但是首先转到图5,图示了在具有双重较低和较高速度级别的高速缓存的计算环境中,用于在次级高速缓存(闪存高速缓存)中提升部分数据片段的第一示范方法。在图示的实施例中,次级高速缓存表示为较低速度级别的高速缓存,并且较高速度的高速缓存可以实现在存储控制器中如之前的示范图示中的DRAM高速缓存。方法500开始(步骤502)于配置数据移动机制。所述数据移动机制适于,首先,使部分数据片段保留在较高级别的高速缓存中比完整数据片段长(步骤504)。换言之,所述数据移动机制实现用于将完整数据片段移动到闪存高速缓存而不是部分数据片段的带有内置优选的操作,希望部分数据片段中的洞将被填充。
[0040]该数据移动机制还适于基于几个度量实现部分数据片段的数据移动到较低速度的高速缓存(再次,例如,闪存高速缓存)的优选。两个这种可能的度量是洞的数量和数据“热度”或数据热度度量(步骤506)。这些度量将在下列示例情况中进一步说明。上述数据移动的优选的一个目标是用随后的离台操作(更多数据被离台)在较高速度的高速缓存中释放更多空间以及合并成对较低速度的次级高速缓存的单个写入。然后方法500结束(步骤 508)。
[0041]如前所述,如图5所示的数据移动机制的一个可能的实施例,以前,跨次级高速缓存的部分写入部分数据片段,当空间可用时。为了定位分散的数据,可以利用高速缓存闪存控制块(再次,CFCB)中的指针。下面图6图示了方法600所示的这种机制,其开始于(步骤602)当空间可用时,跨闪存高速缓存分配轨道的页,使用一个或多个CFCB中的指针定位这些页(步骤604)。然后方法600结束(步骤606)。上述实施例的优点包括减少和/或消除次高速缓存中有价值的存储空间,并且不需要附加的I/O操作。
[0042]数据移动机制的又一可能的实现涉及写入部分轨道作为次级高速缓存上的全部轨道(包括数据洞),针对多种因素,下面图7图示了实现为方法700的这种数据移动机制。方法700开始于(步骤702)确定所讨论的数据片段是否是部分轨道(步骤704)。如果不是,方法700移动到步骤705,其中完整轨道被写入到闪存高速缓存。然后方法700结束(步骤716)。方法700查询部分轨道是否展示了“较热的”数据热度度量(换言之,是与其他数据相比使用更频繁的数据)。如果是,方法700移动到步骤708,其中方法700查询所讨论的部分数据片段是否具有少于预定的洞数“N”。如果是,方法移动到步骤710,其中部分数据片段被写入到次级高速缓存(步骤710)。在可替换实施例中,洞的大小可在判断中被衡量以按类似方式写入部分数据片段。
[0043]返回步骤706,如果数据片段不展示较热的数据热度度量,并且不少于N个洞,方法700移动到步骤712,其中部分数据片段被丢弃。然后方法700结束(步骤716)。返回步骤710,并且这可以在可选实施例中实现,然后方法700返回备用存储以读取和修补部分数据片段的缺失部分(步骤714)。然后方法结束(再次,步骤716)。使用图7所示的上述示范机制,使部分数据片段比全部数据片段在较高速度的高速缓存级别(例如DRAM高速缓存)保留更久。一个本领域普通技术人员将理解,预定数N和/或洞的大小可以根据具体实现而不同。
[0044]用于实现根据前面图5所示的数据移动机制的又一可能的实施例涉及如前所述将部分数据片段密集包装进一个或多个高速缓存闪存元件(CFE)。现在转到图8,图示了用于执行这种操作的示范方法800,并且开始于(步骤802)将部分轨道密集包装(即,移除它们之间的洞)进CFE (步骤804)。在后续步骤中,所述CFE然后可以被动态地垃圾收集(步骤806)。换言之,一个或多个CFE中的数据部分,在包装步骤之后,可以被指定为垃圾并且被收回。然后方法800结束(步骤808)。在其他实施例中,因为可能需要附加的次级高速缓存空间以实现垃圾收集机制,可以实现一种可替换的机制,其不收回来自CFE的数据片段。换言之,所有相关的数据片段可以被一次逐出。
[0045]本领域技术人员将理解,本发明的方面可以实现为一种系统、方法或计算机程序产品。因此,本发明的方面可以采用完整硬件实现、完整软件实现(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实现的形式,可以一般都在这里称为“电路”、“模块”或系统。而且,本发明的方面可以采用实现在一个或多个其上包含有计算机可读程序代码的计算机可读介质中的计算机程序产品的形式。
[0046]可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如,但不限于,电的、磁的、光的、电磁的、红外的或半导体系统、装置或设备,或上述的任何合适的组合。计算机可读存储介质的更具体的例子(非穷举列表)可以包括下列:具有一个或多个线的电连接、便携计算机盘、硬盘、随机存取存储器(RAM)、只读取存储器(ROM)、可擦除可编程只读取存储器(EPR0M或闪存)、光纤、便携压缩盘只读取存储器(CD-ROM)、光存储设备、磁存储设备,或上述的任何合适的组合。在这个文档的上下文中,计算机可读存储介质可以是可包含或存储用于指令执行系统、装置或设备使用或与之附属的程序的任何有形介质。
[0047]可以使用任何适当的介质传送实现在计算机可读介质上的程序代码,包括但不限于无线、有线、光纤缆、RF等或上述的任何合适的组合。用于执行本发明的操作的计算机程序代码可以用一种或多种编程语言的任何组合写入,包括面向对象的编程语言例如Java、Smalltalk、C++等和常规的过程编程语言,例如“C”编程语言或类似的编程语言。程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包、部分在用户的计算机上且部分在远程计算机上或者完全在远程计算机或服务器上。在后者的场景中,远程计算机可以连接到用户的计算机通过任何类型的网络,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。
[0048]在以上参考根据本发明的实施例的方法、装置(系统)和计算机程序产品流程图图示和/或框图说明了本发明的方面。将理解,流程图图示和/或框图的每个框,以及流程图图示和/或框图中框的组合,可以通过计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,这样所述指令,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现流程图和/或框图框中指定的功能/动作的手片段。
[0049]这些计算机程序指令还可以存储在可以指导计算机、其他可编程数据处理装置或其他设备按照特定形式工作的计算机可读介质中,这样存储在计算机可读介质中的指令产生一件包括实现流程图和/或框图框中指定的功能/动作的指令的产品。所述计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上以使一系列操作步骤在计算机、其他可编程数据处理装置或其他设备上执行以产生计算机实现的过程,这样在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图框中指定的功能/动作的过程。
[0050]上图中的流程图和框图图示了根据本发明的多种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。为此,流程图或框图中每个框可以代表模块、片段或部分代码,其包括用于实现制定逻辑功能的一个或多个可执行指令。还应该注意,在一些可替换实现中,框中提及的功能可以不按照图中提及的顺序发生。例如,先后示出的两个框可以,实际上,被基本同时执行,或者这些框有时可以按相反顺序执行,取决于涉及的功能。还应注意,框图和/或流程图图示中的每个框,以及框图和/或流程图图示中框的组合,可以通过基于专用硬件的执行指定功能或动作的系统或专用硬件和计算机指令的组合实现。
[0051]虽然已详细说明了本发明的一个或多个实施例,本领域普通技术人员将理解可以进行那些实施例的修改和适应而不背离下列权利要求中提出的本发明的范围。
【权利要求】
1.一种用于在具有较低速度高速缓存级别和较高速度高速缓存级别的计算存储环境中由处理器提升部分数据片段的方法,包括: 配置一种数据移动机制,所述数据移动机制适于执行以下至少一项: 允许所述部分数据片段保留 在所述较高速度高速缓存级别中的时段长于至少一个完整数据片段,以及 基于洞的数量和数据热度度量中的至少一个,实现用于所述部分数据片段向所述较低速度高速缓存级别的移动的优选,其中具有较低数量的洞和较热数据热度中的至少一个的所述部分数据片段中的第一部分数据片段先于具有较高数量的洞和较冷数据热度中的至少一个的所述部分数据片段中的第二部分数据片段被移动到所述较低速度高速缓存级别。
2.根据权利要求1所述的方法,还包括:依照配置所述数据移动机制,将所述部分数据片段中的一个部分数据片段写入到所述较低速度高速缓存级别作为完整数据片段。
3.根据权利要求1所述的方法,还包括:依照配置所述数据移动机制,将所述部分数据片段中的一个部分数据片段密集地包装到高速缓存闪存元件(CFE)中。
4.根据权利要求1所述的方法,还包括:将所述部分数据片段的固定部分写入到所述较低速度高速缓存中的对应于相关联的存储设备的部分,其中所述固定部分使用附属的高速缓存闪存控制块(CFCB)中的指针而被定位。
5.根据权利要求2所述的方法,还包括:如果所述部分数据片段中的所述第一部分数据片段具有较热数据热度以及大于预定数目的洞,丢弃所述部分数据片段中的所述第一部分数据片段。
6.根据权利要求2所述的方法,还包括:从备用存储读取与来自所述部分数据片段中的所述一个部分数据片段的缺失数据对应的数据,以利用读取的所述数据修补所述缺失数据。
7.根据权利要求6所述的方法,其中执行所述读取和修补所述数据的决定基于以下至少一个:洞的所述数量、所述数据热度度量以及所述洞中的至少一个洞的大小。
8.根据权利要求3所述的方法,还包括:依照密集地包装所述部分数据片段中的所述一个部分数据片段,执行以下之一: 动态垃圾收集所述CFE,以及 避免从所述CFE回收数据。
9.一种用于在具有较低速度高速缓存级别和较高速度高速缓存级别的计算存储环境中提升部分数据片段的系统,包括: 处理器,可操作于所述计算存储环境中,其中所述处理器适于: 配置数据移动机制,所述数据移动机制适于执行以下至少一项: 允许所述部分数据片段在所述较高速度高速缓存级别中保留的时间长于至少一个完整数据片段,以及 基于洞的数量和数据热度度量中的至少一个,实现用于所述部分数据片段向所述较低速度高速缓存级别的移动的优选,其中具有较低数量的洞和较热数据热度中的至少一个的所述部分数据片段中的第一部分数据片段先于具有较高数量的洞和较冷数据热度中的至少一个的所述部分数据片段中的第二部分数据片段被移动到所述较低速度高速缓存级别。
10.根据权利要求9所述的系统,其中所述处理器还适于:依照配置所述数据移动机制,将所述部分数据片段中的一个部分数据片段写入到所述较低速度高速缓存级别作为完整数据片段。
11.根据权利要求9所述的系统,其中所述处理器还适于:依照配置所述数据移动机制,将所述部分数据片段中的一个部分数据片段密集地包装到高速缓存闪存元件(CFE)中。
12.根据权利要求9所述的系 统,其中所述处理器还适于:将所述部分数据片段的固定部分写入到所述较低速度高速缓存中的对应于相关联的存储设备的部分,其中所述固定部分使用附属的高速缓存闪存控制块(CFCB)中的指针而被定位。
13.根据权利要求10所述的系统,其中所述处理器还适于:如果所述部分数据片段中的所述第一部分数据片段具有较热数据热度以及大于预定数目的洞,丢弃所述部分数据片段中的所述第一部分数据片段。
14.根据权利要求10所述的系统,其中所述处理器还适于:从备用存储读取与来自所述部分数据片段中的所述一个部分数据片段的缺失数据对应的数据,以利用读取的所述数据修补所述缺失数据。
15.根据权利要求14所述的系统,其中执行所述读取和修补所述数据的决定基于以下至少一个:洞的所述数量、所述数据热度度量以及所述洞中的至少一个洞的大小。
16.根据权利要求11所述的系统,其中所述处理器还适于:依照密集地包装所述部分数据片段中的所述一个部分数据片段,执行以下之一: 动态垃圾收集所述CFE,以及 避免从所述CFE回收数据。
17.一种用于在具有较低速度高速缓存级别和较高速度高速缓存级别的计算存储环境中由处理器提升部分数据片段的计算机程序产品,所述计算机程序产品包括具有其上存储计算机可读程序代码部分的非暂时计算机可读存储介质,所述计算机可读程序代码部分包括: 第一可执行部分,用于配置一种数据移动机制,所述数据移动机制适于执行以下至少一项: 允许所述部分数据片段保留在所述较高速度高速缓存级别中的时段长于至少一个完整数据片段,以及 基于洞的数量和数据热度度量中的至少一个,实现用于所述部分数据片段向所述较低速度高速缓存级别的移动的优选,其中具有较低数量的洞和较热数据热度中的至少一个的所述部分数据片段中的第一部分数据片段先于具有较高数量的洞和较冷数据热度中的至少一个的所述部分数据片段中的第二部分数据片段被移动到所述较低速度高速缓存级别。
18.根据权利要求17所述的计算机程序产品,还包括第二可执行部分,用于依照配置所述数据移动机制,将所述部分数据片段中的一个部分数据片段写入到所述较低速度高速缓存级别作为完整数据片段。
19.根据权利要求17所述的计算机程序产品,还包括第二可执行部分,用于依照配置所述数据移动机制,将所述部分数据片段中的一个部分数据片段密集地包装到高速缓存闪存元件(CFE)中。
20.根据权利要求17所述的计算机程序产品,还包括第二可执行部分,用于将所述部分数据片段的固定部分写入到所述较低速度高速缓存中对应于相关联的存储设备的部分,其中所述固定部分使用附属的高速缓存闪存控制块(CFCB)中的指针而被定位。
21.根据权利要求18所述的计算机程序产品,还包括第三可执行部分,用于如果所述部分数据片段中的所述第一部分数据片段具有较热数据热度以及大于预定数目的洞,丢弃所述部分数据片段中的所述第一部分数据片段。
22.根据权利要求18所述的计算机程序产品,还包括第三可执行部分,用于从备用存储读取与来自所述部分数据片段中的所述一个部分数据片段的缺失数据对应的数据,以用读取的所述数据修补所述缺失数据。
23.根据权利要求22所述的计算机程序产品,其中执行所述读取和修补所述数据的决定基于以下至少一个:洞的所述数量、所述数据热度度量以及所述洞中的至少一个洞的大小。
24.根据权利要求19所述的计算机程序产品,还包括第三可执行部分,用于依照密集地包装所述部分数据片段中的所述一个部分数据片段,执行以下之一: 动态垃圾收集所述CFE,以及 避免从所述CFE回收数据。
【文档编号】G06F12/08GK103907096SQ201280053168
【公开日】2014年7月2日 申请日期:2012年8月30日 优先权日:2011年11月1日
【发明者】L·M·古普塔, E·S·埃勒夫塞里奥, I·科尔特斯达斯, 胡晓宇, R·普勒特卡, R·哈斯, S·布利尼克, M·J·卡洛斯, K·A·内尔森, M·T·本哈斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1