管理多个存储器设备中被指示为在数据结构初始化后降级的数据结构的制作方法

文档序号:31207434发布日期:2022-08-20 02:54阅读:83来源:国知局
管理多个存储器设备中被指示为在数据结构初始化后降级的数据结构的制作方法

1.本发明涉及用于管理多个存储器设备中的数据结构的计算机程序产品、系统和方法,该数据结构被指示为在数据结构的初始化后降级(demote after initialization)。


背景技术:

2.存储级存储器(scm)系统利用低延时动态随机存取存储器(dram)和比dram更便宜的一个或多个更高延时闪存nand存储器设备,以通过使用更高延时、更低成本nand设备以更低成本在存储器或高速缓存中提供更大的存储。scm允许系统存储器扩展有快速存取非易失性存储器nand设备。
3.闪存设备具有比dram更少的持久性,因为对于闪存位单元存在有限数量的擦除周期,其远少于dram单元。现有技术中减少闪存设备上的损耗的一种技术是使用损耗均衡技术,该技术将写入分布在同一或不同设备中的多个闪存单元上,以避免特定闪存单元的过度使用。
4.在本领域中需要用于管理诸如scm系统的存储器子系统中的多个存储器设备中的数据存储的改进技术。


技术实现要素:

5.提供了用于管理多个存储器设备中的数据结构的计算机程序产品、系统和方法,该数据结构被指示为在数据结构的初始化之后降级。指示数据结构在初始化之后从第一级存储器设备降级到第二级存储器设备。第一级存储器设备具有比第二级存储器设备更低的延时。响应于完成第一级存储器设备中的数据结构的初始化,将指示在初始化之后降级的数据结构从第一级存储器设备复制到第二级存储器设备,并从第一级存储器设备移除指示在初始化之后移动的数据结构。
6.通过上述实施例,可以将不太频繁访问的数据结构移动到更低级存储器设备以用于连续存储,因为它们不频繁访问并且可以从更低级存储器设备服务于读取访问。然而,如果需要对被指示为初始化之后降级的数据结构进行写入,则数据结构可被移动到第一级存储器设备中以用于对该数据结构的一个或多个写入操作。当写入操作完成后,数据结构可以从第一级存储器设备降级并且移动到更低级存储器设备,因为数据结构将不太可能在相当长的时间内被写入访问。
7.在进一步的实施例中,针对存储在第一级存储器设备中的未被指示在初始化之后降级的数据结构维护访问计数,其中不针对被指示在初始化之后降级的数据结构维护访问计数。
8.对于上述实施例,不需要对在更新或初始化之后自动降级的数据结构进行访问计数,因为他们在使用之后从第一级存储器设备中腾出,而不考虑访问计数。
9.在进一步的实施例中,访问计数用于选择数据结构以从第一级存储器设备移除并
保持在第二级存储器设备中以释放第一级存储器设备中的空间。访问计数用于确定是否从第二级存储器设备中移除被访问的数据结构。
10.通过上述实施例,使用访问计数来确定是将数据结构存储在低延时存储器设备还是高延时存储器设备中允许通过在低延时存储器设备中放置高访问计数数据来优化系统性能并在更高延时存储器设备中放置低访问计数数据来提高系统性能,这将对系统性能具有较小的影响,因为低访问计数数据较不频繁地被访问。
11.在另一实施例中,接收对被指示在初始化之后降级的数据结构的更新。将要更新的数据结构从第二级存储器设备复制到第一级存储器设备以进行更新。将更新的数据结构从第一级存储器设备复制到第二级存储器设备,并且从第一级存储器设备删除更新的数据结构。
12.利用上述实施例,通过将被指示为在初始化之后降级的更新的数据结构移动到更低延时存储器设备以执行更新,系统性能得到改善。然后,在更新之后从第一级存储器设备删除数据结构,因为假定被指示在初始化之后降级的数据结构被非常不频繁地访问所以该数据结构不太可能被访问。
13.还提供了一种用于管理计算系统中的多个存储器设备中的数据的计算机程序产品、系统和方法。接收对指示从第一级存储器设备降级的数据结构的更新。将要更新的数据结构从第二级存储器设备复制到第一级存储器设备以进行更新。第一级存储器设备具有比第二级存储器设备更低的延时。响应于更新数据结构,将更新的数据结构从第一级存储器设备复制到第二级存储器设备,并且从第一级存储器设备删除。
14.利用上述实施例,通过将被指示降级的更新的数据结构移动到更低延时存储器设备以执行更新,并且然后在更新之后从第一级存储器设备删除,来提高系统性能,因为假定被指示在初始化之后降级的数据结构被不太频繁地访问所以其不太可能被访问。将不频繁访问的数据结构从低延时设备移除到更高延时设备以进行存储,通过使低延时设备中的空闲空间最大化以可用于更频繁访问的数据结构,改善了系统性能。
15.在进一步的实施例中,对数据结构的更新是对数据结构中的至少一个要更新的字段的更新,其少于数据结构中所有字段。复制数据结构包括仅复制来自数据结构的要更新的至少一个字段到第一级存储器设备,其中复制更新的数据结构包括将更新的至少一个字段从第一级存储器设备复制到第二级存储器设备,以及从第一级存储器设备删除更新的至少一个字段。
16.通过上述实施例,通过仅将要更新的字段从第二级存储器设备中的数据结构复制到第一级存储器设备以进行更新,进一步节省和优化了低延时第一级存储器空间。
17.在进一步的实施例中,要更新的数据结构在第二级存储器设备中。确定更新是否包括多个预定义更新事件中的更新事件。响应于确定更新包括更新事件,复制数据结构以更新到第一级存储器设备。作为更新事件的一部分,执行对数据结构的多次写入。作为更新事件的一部分而更新的数据结构从第一级存储器设备复制到第二级存储器设备,并且响应于完成对更新事件的写入而从第一级存储器设备删除更新的数据结构。
18.对于上述实施例,如果在更新或初始化之后要降级的数据结构将要经受写入突发,则将它们复制到第一级存储器设备,尽管通常其不被频繁地访问。作为更新系统配置文件的操作的一部分,可以将这种数据结构周期性地分级到第一级存储器设备中,以便进行
突发写入。因为该配置文件不被频繁地更新,所以在更新事件之后,系统数据结构可以被移回到更低级别的存储器设备以用于存储和访问。这释放了较快存取第一级存储器设备中的空间以用于其它较频繁存取的数据。
附图说明
19.图1示出了具有包括多个存储器设备的存储器子系统的计算环境的实施例。
20.图2示出了用于管理存储器设备中的数据结构的存储的数据结构信息的实施例。
21.图3示出了用于执行系统初始化以生成初始系统数据结构的操作的实施例。
22.图4示出了用于处理对单个副本情况的访问请求的操作的实施例,其中在整个存储器子系统中仅存储数据结构的单个副本。
23.图5示出了针对单个副本情况执行存储器管理操作以释放第一级存储器设备中的空间的操作的实施例,其中在整个存储器子系统中仅存储数据结构的单个副本。
24.图6示出了用于处理对多个副本情况的访问请求的操作的实施例,其中在整个存储器子系统中存储数据结构的多个副本。
25.图7示出了针对多个副本情况执行存储器管理操作以释放第一级存储器设备中的空间的操作的实施例,其中在整个存储器子系统中存储数据结构的多个副本。
26.图8示出了用于处理对多个副本情况的访问请求的操作的实施例,其中在整个存储器子系统中存储具有单独的更新和读取计数的数据结构的多个副本。
27.图9示出了针对多个副本情况执行存储器管理操作以释放第一级存储器设备中的空间的操作的实施例,其中在整个存储器子系统中存储具有单独的更新和读取计数的数据结构的多个副本。
28.图10示出了在具有多个存储器设备的存储器子系统中执行系统初始化并生成数据结构的操作的实施例。
29.图11示出了用于处理对多个存储器设备的存储器子系统中在初始化后降级的数据结构的访问的操作的实施例。
30.图12示出了其中可实现图1的组件的计算环境。
具体实施方式
31.用于定义计算系统中的逻辑设备的系统控制结构可被保持在主dram存储器中。然而,随着dram达到几乎满级,使用耗时的存储器管理过程来将dram中的数据结构移动到更低级存储器设备,例如更高延时nand型闪存或磁盘存储设备。
32.所描述的实施例提供了用于管理存储器子系统中的数据结构的改进的计算机技术,该存储器子系统包括具有不同特性的多个不同级别的存储器设备,诸如最低延时的第一级存储器设备,例如dram,以及不同的更高延时、更便宜的更低级别存储器设备,例如nand闪存。对于所描述的实施例,使用访问计数来确定何时将数据结构从第一级存储器设备移动到具有更高延时的更低级存储器设备。访问计数还可以用于基于针对不同的更低级存储器设备保持的访问阈值来确定是否在第一级存储器设备和更低级存储器设备中保持数据结构的多个副本,以将具有适当的耐久性简档(例如,擦除周期的数量)的更低级存储器设备中的数据结构的放置与数据结构的访问计数简档相匹配。
33.在进一步的实施例中,访问计数可以用于确定在访问数据结构时在多个存储器设备中保持数据结构的多个副本,或者仅留在第一级存储器设备中。与最频繁更新的数据结构相比,较不频繁访问的数据结构可被指示为可交换的,以允许存储在具有更高延时的更低级存储器设备中,而最频繁访问的数据结构可能不是可交换的,并且保持在最低延时的第一级存储器设备中。
34.此外,访问计数可以包括单独的读取和更新计数,以用于确定是否将较不频繁更新的数据结构移动到更低级存储器设备。此外,具有更高耐久性(例如允许更多的擦除周期)的更低级存储器设备可能更昂贵,并且只有最高访问计数的数据结构被置于具有更高耐久性的那些更低级存储器设备中,并且具有更低更新计数的那些数据结构可以被存储在具有更低耐久性(例如允许更少的擦除周期)的更便宜的更低级存储器设备中。这允许通过基于更低级存储器设备的持久性来将按照更新计数的数据结构与更低级存储器设备匹配,以优化数据结构在更低级存储器设备中的放置。
35.图1示出了计算环境的实施例。多个主机102可以通过网络106向存储控制器104提交输入/输出(i/o)请求,以访问存储设备110中的卷108处的数据(例如,逻辑单元号、逻辑设备、逻辑子系统等)。存储控制器104包括一个或多个处理器112和存储器子系统,例如存储级存储器(scm)存储器系统,其具有虚拟存储器管理器114,以管理多个存储器设备中的一者中的轨道的放置,该存储器设备例如第一级存储器设备1161、第二级存储器设备1162至第n级存储器设备116n。虚拟存储器管理器114保持具有关于数据结构1181、1182、1183的信息的数据结构信息200,诸如在系统初始化期间由操作系统生成的系统数据结构或对象,虚拟存储器管理器114处理该信息以确定在其上存储系统和其它数据结构的一个或多个级存储器设备1161.......116n。虚拟存储器管理器114还可以保持地址转换表以提供转换服务并将卷108中的轨道映射到存储器设备1161...116n中的物理或逻辑位置。虚拟存储器管理器114还可包括执行损耗均衡(wear leveling)的算法以将写入操作分布到不同的存储器设备1162..116n以及存储器设备(诸如固态存储设备(ssd)或闪存)内的不同位置,这些存储器设备具有有限数量的擦除周期以增加这些更低级存储器设备1161..116n的寿命。在某些实施例中,包括虚拟存储器管理器114和级存储器设备1161...116n的存储器子系统可以用作存储控制器104或其他计算设备的缓存。
36.处理器112、虚拟存储器管理器114和存储器设备1161..116n可通过一个或多个总线接口120通信。此外,虚拟存储器管理器114可通过不同类型和单独的总线和设备接口与不同的存储器设备1161...116n通信。例如,本地存储器接口可用于与第一级存储器设备1161通信,例如用于dram,且存储设备接口可用于与更低级存储器设备1162..116n通信,例如非易失性存储器高速(nvme)以与闪存和ssd通信。
37.在一个实施例中,第一级存储器设备1161可包括高成本和极低延时的设备,例如动态随机存取存储器(dram)或静态随机存取存储器(sram),并且更低级存储器设备1161..116n可包括更便宜和更高延时以及更高容量的存储设备,例如非易失性随机存取存储器(nvram),包括磁阻随机存取存储器(mram)、相变存储器(pcm)、电阻随机存取存储器(rram)、自旋转移转矩存储器(stm-ram)、导电桥接ram(cbram)、nand存储器设备,例如闪存和固态驱动器(ssd)等。在一个实施例中,更低级存储器1162.......116n可以具有带有不同数量的可用擦除周期的不同耐久性简档,使得存储器设备1162..116n中的更高级允许比存
储器1162..116n中的更低级具有更多数量的擦除周期,即更大的耐久性。例如,更低级存储器设备116i可以具有比更低级存储器设备116j更大的耐久性,即,更高的擦除周期次数,其中i<j。可存在一个或多个更低级存储器设备116i。
38.虚拟存储器管理器114可以包括在存储控制器104中的硬件设备中(例如在专用集成电路(asic)中)实现为微代码或固件的单独的处理或硬件设备。可替换地,虚拟存储器管理器114可包括具有执行被加载到存储器设备中的代码的处理器的系统。更进一步,虚拟存储器管理器114可以被实现为被加载到第一级存储器设备1161中并由处理器112执行的代码。
39.存储设备110可以包括本领域已知的一个或多个存储设备,诸如固态存储设备(ssd)、磁性硬盘驱动器、光盘、磁带等。存储设备还可被配置为设备阵列,诸如简单磁盘捆绑(jbod)、直接存取存储设备(dasd)、独立磁盘冗余阵列(raid)、虚拟化设备等。此外,存储设备可以包括来自不同供应商或来自相同供应商的异构存储设备。
40.网络106可以包括存储区域网络(san)、局域网(lan)、广域网(wan)、因特网和内联网等。可替换地,主机102可以通过总线接口(例如外围组件互连(pci)总线接口和本领域已知的其它接口)连接到存储控制器104。
41.图2示出了数据结构的数据结构信息200i的实例的实施例,包括诸如文件或对象名的数据结构标识符(id)202、指示数据结构202是否可以在第一级存储器设备1161和更低级存储器设备1162...116n之间定期移动的可交换标记204、指示在测量周期内数据结构202被更新的次数的更新计数206;指示在测量周期内数据结构202被读取的次数的读取计数208、指示数据结构202在第一级存储器设备1161中生成之后是否立即被降级的初始化后降级标志210;以及指示其中当前存储数据结构202的级存储器设备1161..116n的设备指针212。
42.在一个实施例中,可交换标记204和初始化后降级标记210可由操作系统开发者或管理员基于估计的数据结构将被访问的频率来设置。例如,最频繁更新或访问的数据结构可被标记为可交换的,以总是保留在最快的第一级存储器设备1161中。较不频繁访问的数据结构1181、1182、1183可以偶尔交换到更低级存储器设备1162..116n,以释放第一级存储器设备1161中的空间。
43.更新计数206可用于选择更低级存储器设备116i,在其上存储数据结构以与耐久性或可用擦除周期相匹配。例如,更频繁访问的数据结构(具有更高更新计数206的那些数据结构)可以被放置在具有更高耐久性的更低级存储器设备116i上。以此方式,更低级存储器设备1162...116n中的每一者可与一系列更新计数相关联。在可替换的实施例中,对于读取和/或写入可以仅存在一个访问计数,用于确定何时将数据结构换出第一级存储器设备1161并选择更低级存储器设备116i来存储被交换的数据结构。
44.被指示为不可交换204的数据结构信息200i可以不保持访问计数206、208,因为该数据结构不是基于其访问而在存储器设备之间管理的。
45.初始化后降级标志210可以被设置用于也被指示为不可交换204的数据结构,这些数据结构是静态的并且很少但是有时会改变。在这种情况下,这种不频繁访问的数据结构可以被移动到更低级存储器设备116i以便连续存储,因为将有较不频繁访问的写入访问和读取访问可以从低级存储器设备116i得到服务。然而,如果需要对被指示为初始化后降级
210的数据结构的写入,则可以将该数据结构移动到第一级存储器设备1161中以用于对该数据结构的一个或多个写入操作。当写入操作完成时,数据结构可以从第一级存储器设备1161降级并移动到更低级存储器设备116i,因为数据结构将不太可能在相当长的时间内被写入访问。
46.在一个实施例中,由虚拟存储器管理器114管理的数据结构可包括在系统初始化或初始微码加载(iml)期间生成的数据结构,并包括提供针对硬件设备和逻辑设备、路径和子系统、设备特性和设置的配置信息的结构。在替代实施例中,数据结构可以由应用生成。
47.在某些实施例中,虚拟存储器管理器114可周期性地递减访问计数(诸如更新206和读取208计数),以减少访问随时间的加权。这提供了访问计数的强度是时间敏感的,并且随时间衰减。
48.图3示出了由存储控制器100的操作系统执行的用于存储控制器100的系统初始化的操作的实施例,其可被保持在第一级存储器设备1161和虚拟存储器管理器114中。在启动系统初始化(在框300)时,生成系统数据结构(在框302)并将其存储在第一级存储器设备1161中。对于所生成的数据结构中的被指示为初始化后降级210的每一个数据结构,所生成的数据结构被复制(在框304)到最低级存储器设备(例如,第三级)并且从第一级存储器设备1161移除。
49.图4示出了对于在存储器设备1161..116n中仅保持数据结构118i的一个副本的单个副本情况由虚拟存储器管理器114执行的处理诸如读取或写入的访问请求的操作的实施例。在处理(在框400)访问请求时,如果(在框402)访问的数据结构118i是不可交换的204,控制前进到图11以便作为不可交换的数据结构进行处理。如果(在框402)所访问的数据结构118i的数据结构信息200i中的可交换标记204指示数据结构118i是可交换的,则访问计数递增(在框406)。在图4和图5的实施例中,对于读取和/或写入访问可以只有一个访问计数。
50.如果(在框408)被访问的数据结构118i在第一级存储器设备1161中,则在第一级存储器设备1161处执行(在框410)访问请求。如果数据结构118i不在第一级存储器设备1161中,则虚拟存储器管理器114将数据结构118i从更低级存储器设备116i复制(在框412)到第一级存储器设备1161,从更低级存储器设备116i移除(在框414)数据结构118i,并更新设备指针212以指示第一级存储器设备1161。
51.对于图4的实施例,虚拟存储器管理器114保持数据结构在存储器设备116i中的一者中的单个副本,并且在被访问时将可交换的数据结构从更低级存储器设备116i移动到第一级存储器设备1161。
52.图5示出了在存储器设备116i中的一者中保持数据结构118i的单个副本的情况下由虚拟存储器管理器114执行以释放第一级存储器设备1161中的空间的操作的实施例。在启动(在框500)存储器管理时,如果(在框502)第一级存储器设备1161中的空闲空间量高于存储器阈值,则控制结束。如果(在框502)空闲空间量低于存储器阈值,则虚拟存储器管理器114选择(在框504)第一级存储器设备1161中被指示为可交换的具有满足空闲空间量的最低访问计数的数据结构118i。将所选择的数据结构复制(在框506处)到更低级存储器设备116i中的一者,将其从第一级存储器设备1161移除,并且更新被移动的数据结构的设备指针212以指向该数据结构被添加到的更低级存储器设备116i。
53.在一个实施例中,可以使用所选择的数据结构的访问计数来确定存储该数据结构
的更低级存储器设备。如果更低级存储器设备116i是根据它们的耐久性按照可擦除周期排序的,并且更低编号的设备具有比更高编号的设备更高的耐久性(例如,存储器设备1162具有比存储器设备1163更大的耐久性),则数据结构被放置在具有超过数据结构访问计数的最低级阈值的存储器设备116i中。
54.对于图5的实施例,为了释放第一级存储器设备1161中的空间,虚拟存储器管理器114考虑具有最低访问计数的数据结构,因为该数据结构不太频繁地被更新和访问,并且最适合存储在更低级存储器设备1162..116n中。
55.图6示出了在多个存储器设备1161..116n中保持数据结构118i的多个副本的情况下由虚拟存储器管理器114执行的处理访问请求的操作的实施例。对于图6和图7的实施例,存在一个访问计数,包括更新206和/或读取208计数。在处理(在框600)访问请求时,如果(在框602)被访问的数据结构118i是不可交换的204,控制前进到图11以便作为不可交换的数据结构进行处理。如果(在框602)所访问的数据结构118i的数据结构信息200i中的可交换标记204指示数据结构118i是可交换的,则访问计数递增(在框606)。
56.如果(在框608)被访问的数据结构118i是在第一级存储器设备1161中,则在第一级存储器设备1161处执行(在框610)访问请求。如果数据结构118i不在第一级存储器设备1161中,则虚拟存储器管理器114将数据结构118i从更低级存储器设备116i复制(在框612)到第一级存储器设备1161,并更新(在框614)设备指针212以指示第一级存储器设备1161。如果(在框616)访问请求是更新,则更新(在框616)一个或多个存储器设备中的数据结构的副本。
57.虚拟存储器管理器114确定(在框618)具有超过数据结构118i访问计数的最低级阈值的更低级存储器设备116j,其是具有最适合于所选择的数据结构118i的访问计数的耐久性的存储器设备。如果(在框620)数据结构118i不在所确定的更低级存储器设备116j中,则虚拟存储器管理器114将数据结构118i从当前具有数据结构118i的更低级存储器设备116i复制(在框622)到具有所确定的最低级阈值的更低级存储器设备116j,并且从数据结构从中被复制的更低级存储器设备116i中移除(在框624)数据结构118i。如果(在框620处)数据结构118i已经在所确定的更低级存储器设备116i中或已经复制到所确定的更低级存储器设备116i(在框622处),则更新设备指针212(在框626处)以指示现在具有数据结构118i的更低级存储器设备116j。
58.对于图6的实施例,被访问的数据结构被移动到第一级存储器设备1161,并且还被保留在包括具有与数据结构的访问计数相称的耐久性、可擦除周期的更低级存储器设备中。通过将按访问计数的数据结构与按耐久性的更低级存储器设备进行匹配,数据结构被存储在具有最适合于数据结构的访问频率的耐久性级别的更低级存储器设备中。此外,如果数据结构的访问计数高于第二存储器级设备1162的最高级阈值,则从具有该数据结构的存储器级设备116i移除该数据结构,而不将该数据结构移动到另一存储器级设备,因为访问计数对于更低级存储器设备1162..116n来说太高。
59.图7示出了当在多级存储器设备1161..116n中保持数据结构118i的副本时由虚拟存储器管理器114执行的用于执行存储器管理的操作的实施例。在针对多个副本的情况启动(在框700)存储器管理时,如果(在框702)第一级存储器设备1161中的空闲空间量高于存储器阈值,则控制结束。如果(在框702)空闲空间量低于存储器阈值,则虚拟存储器管理器
114选择(在框704)第一级存储器设备1161中被指示为可交换的具有满足空闲空间量的最低访问计数的数据结构118i。对每个所选择的数据结构118i执行框706到718的操作。
60.虚拟存储器管理器114确定(在框708)具有超过数据结构118i访问计数的最低级阈值的更低级存储器设备116j,其是具有最适合于所选择的数据结构118i的访问计数的耐久性的存储器设备。如果(在框710)数据结构118i不在所确定的更低级存储器设备116i中,则虚拟存储器管理器114将数据结构118i从第一级存储器设备1161复制(在框712)到具有所确定的最低级阈值的更低级存储器设备116i。如果(在框710处)数据结构118i已经在所确定的更低级存储器设备116i中或者已经被复制到所确定的更低级存储器设备116i(在框712处),则从第一级存储器设备1161中移除(在框714处)数据结构118i,并且更新(在框716处)设备指针212以指示现在具有数据结构118i的更低级存储器设备116i。
61.对于图7的实施例,为了释放第一级存储器设备1161中的空间,虚拟存储器管理器114考虑具有最低访问计数的数据结构,因为该数据结构不太可能被更新和访问,并且最适合存储在更低级存储器设备1162..116n中。从第一级存储器设备1161中移除具有最低访问计数的所选择的数据结构,并将其保留在具有包括要移动的数据结构的访问计数的级阈值的更低级存储器设备116i中。
62.图8示出了在多个存储器设备1161..116n中保持数据结构118i的多个副本并且存在单独的更新206和读取208计数的情况下由虚拟存储器管理器114执行的处理访问请求的操作的实施例。在处理(在框800)访问请求时,如果(在框802)被访问的数据结构118i是不可交换的204,控制前进到图11以便作为不可交换的数据结构进行处理。如果(在框802)被访问的数据结构118i的数据结构信息200i中的可交换标记204指示数据结构118i是可交换的,则如果访问是写入,则更新计数206递增(在框806),如果访问是读取,则读取计数208递增。
63.如果(在框808)所访问的数据结构118i是在第一级存储器设备1161中,则在第一级存储器设备1161处执行(在框810)访问(读取或写入)。如果(在框808)数据结构118i不在第一级存储器设备1161中,则虚拟存储器管理器114将数据结构118i从更低级存储器设备116i复制(在框812)到第一级存储器设备1161,并更新(在框814)设备指针212以指示第一级存储器设备1161。如果(在框816)访问请求是更新,则更新(在框818)第一1161和更低级存储器设备116i中的数据结构的副本。
64.如果访问是读取(从框816)或更新数据(从框818),则虚拟存储器管理器114确定(在框820)具有超过数据结构118i更新计数206的最低级阈值的更低级存储器设备116j,其是具有最适合于所选择的数据结构118i的更新计数的耐久性的存储器设备。如果(在框822)数据结构118i不在所确定的更低级存储器设备116i中,则虚拟存储器管理器114将数据结构118i从具有数据结构118i的更低级存储器设备116i复制(在框824)到具有所确定的最低级阈值的更低级存储器设备116j,并且从更低级存储器设备116i中移除(在框826)数据结构118i。在数据结构在所确定的具有最低级阈值的更低级存储器设备116j中(从来自框822或826)后,设备指针212被更新(在框828)以指示现在具有数据结构118i的更低级存储器设备116j。
65.对于图8的实施例,被访问的数据结构被移动到第一级存储器设备1161,并且还被保留在包括具有与数据结构的更新计数相称的耐久性、可擦除周期的更低级存储器设备
中。通过将按照更新计数的数据结构与按照耐久性的更低级存储器设备相匹配,数据结构被存储在具有最适合于数据结构的更新频率的耐久性级别的更低级存储器设备中。此外,如果数据结构的更新计数高于第二存储器级设备1162的最高级阈值,则从具有该数据结构的存储器级设备116i移除数据结构,而不将数据结构移动到另一存储器级设备,因为更新计数对于更低级存储器设备1162..116n的耐久性简档来说太高。
66.图9示出了当在多级存储器设备1161..116n中保持数据结构118i的副本时由虚拟存储器管理器114执行的用于执行存储器管理的操作的实施例。在针对具有单独的更新和读取计数的多个副本情况发起(在框900)存储器管理时,如果(在框902)第一级存储器设备1161中的空闲空间量高于存储器阈值,则控制结束。如果(在框902)空闲空间量低于存储器阈值,则虚拟存储器管理器114选择(在框904)第一级存储器设备1161中被指示为可交换、具有满足空闲空间量的最低更新计数206的数据结构118i。对每个所选择的数据结构118i执行框906到918的操作。
67.虚拟存储器管理器114确定(在框908)具有超过数据结构118i更新计数206的最低级阈值的更低级存储器设备116j,其是具有最适合于所选择的数据结构118i的更新计数的耐久性的存储器设备。如果(在框910)数据结构118i不在所确定的更低级存储器设备116j中,则虚拟存储器管理器114将数据结构118i从第一级存储器设备1161复制(在框912)到具有所确定的最低级阈值的更低级存储器设备116j。如果(在框910)数据结构118i已经在所确定的更低级存储器设备116j中或者已经复制到所确定的更低级存储器设备116j(在框912),则从第一级存储器设备1161中移除(在框914)数据结构118i,并且更新(在框916)设备指针212以指示现在具有数据结构118i的更低级存储器设备116j。
68.对于图9的实施例,为了释放第一级存储器设备1161中的空间,虚拟存储器管理器114考虑具有最低更新计数的数据结构,因为该数据结构更新不太频繁并且最适合于存储在更低级存储器设备1162..116n中。具有最低更新计数的所选择的数据结构被从第一级存储器设备1161中移除,并被保留在具有包括要移动的数据结构的更新计数的级阈值的更低级存储器设备116i中。
69.图10示出了由虚拟存储器管理器114执行的操作的实施例,以生成数据结构,例如系统初始化期间的系统类型数据结构,包括提供关于逻辑子系统、逻辑卷、路径组、物理路径、逻辑路径、子系统特性和其它配置数据的配置信息的数据结构。在执行可由基本输入操作系统(bios)、初始微码加载(iml)或其它引导设备发起的系统初始化(在框1000)之后,生成系统数据结构并将其存储(在框1002)在第一级存储器设备1161中,作为系统初始化的一部分。更新(在框1004)所生成的系统数据结构118i的数据结构信息200i中的设备指针212,以指示第一级存储器设备1161。虚拟存储器管理器114确定(在框1006)数据结构118i,其数据结构信息200i在字段210中指示该数据结构在初始化后降级。将所确定的数据结构从第一级存储器设备1161复制(在框1008)到所选择的更低级存储器设备116i。可以基于访问计数或更新计数来选择所选择的更低级存储器设备,以选择具有适合于该数据结构的访问或更新计数的耐久性简档的更低级存储器设备,诸如关于图7和图9所描述的。
70.从第一级存储器设备1161中移除(在框1010)所复制的确定的数据结构118i,并且更新(在框1012)用于所移动的数据结构118i的设备指针212以指示数据结构被移动到的所选择的更低级存储器设备。
71.对于图10的实施例,被指示降级的数据结构(其可以包括那些很少被访问的系统数据结构)被移动到适当的更低级存储器设备116i,因为它们的不频繁访问模式指示它们在系统初始化期间被初始化之后将不需要被存储在第一级存储器设备1161中。
72.图11示出了由虚拟存储器管理器114执行的用于处理对不可交换数据结构118i(例如分别在图4、6和8中的框404、604和804调用的)的访问的操作的实施例。在发起(在框1100)对不可交换数据结构118i的访问时,如果(在框1102)不可交换数据结构118i在字段210中不被指示为初始化后降级,则虚拟存储器管理器114提供(在框1104)对第一级存储器设备1161中的数据结构118i的读取或写入访问。如果(在框1102)数据结构118i是在初始化后降级状态,则如果(在框1106)访问是读取,则虚拟存储器管理器114提供(在框1108)对由所访问的数据结构118i的数据结构信息200i中的设备指针212指示的级存储器设备116i中的数据结构118i的读取访问。
73.如果(在框1106)访问是写入,并且如果(在框1110)对数据结构118i的更新不是一组定义的更新事件中的成员,则在数据结构118i的设备指针212中指示的更低级存储器设备116i处执行(在框1112)所请求的写入。如果(在框1110)更新是一组定义的更新事件中的成员,则虚拟存储器管理器114将数据结构114i(或要更新的特定字段或部分)复制(在框1114)到第一级存储器设备1161,并更新设备指针212以指示第一级存储器设备1161。然后,作为事件的一部分,对数据结构118i或数据结构中的特定字段执行事件写入(在框1116)。当完成事件相关的写入时(在框1118),则虚拟存储器管理器114将更新的数据结构118i或仅更新的字段和部分从第一级存储器设备1161复制(在框1120)到所选择的更低级存储器设备116i(例如,选择以减少损耗均衡的最低级等),从第一级存储器设备1161移除数据结构118i,并且更新设备指针212以指示所选择的更低级存储器设备116i。
74.在一个实施例中,触发将数据结构移动到第一级存储器设备1161的定义的一组事件可以包括作为不太频繁地更新的系统配置文件的数据结构,诸如逻辑子系统、卷、路径组、物理路径和逻辑路径的添加或移除。更新事件还可以包括用新的子系统特性和其它信息更新配置信息。
75.利用图11的操作,可以将被指示为初始化后降级的、主要存储在更低级存储器设备116i中的数据结构118i周期性地登台到第一级存储器设备1161中,以进行作为更新系统配置文件的操作的一部分的写入突发(burst)。因为该配置文件不太频繁被更新,所以在更新事件之后,系统数据结构可以被移回到更低级存储器设备以用于存储和访问。这释放了更快访问第一级存储器设备1161中的空间,以用于其他更频繁访问的数据。
76.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。
77.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或
凹槽中的凸起结构的机械编码设备,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
78.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
79.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言,例如java、smalltalk、c++等,以及常规的过程式编程语言,例如“c”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
80.在此参考根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
81.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
82.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
83.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实
际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
84.图1的计算组件(包括主机102和存储控制器104)可以在一个或多个计算机系统中实现,例如图12所示的计算机系统1202。计算机系统/服务器1202可以在计算机系统可执行指令的一般上下文中描述,例如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器1202可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
85.如图12所示,计算机系统/服务器1202以通用计算设备的形式示出。计算机系统/服务器1202的组件可以包括但不限于一个或多个处理器或处理单元1204、系统存储器1206、以及将包括系统存储器1206的各种系统组件耦合到处理器1204的总线1208。总线1208表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线。
86.计算机系统/服务器1202通常包括各种计算机系统可读介质。该介质可以是可由计算机系统/服务器1202访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
87.系统存储器1206可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)1210和/或高速缓冲存储器1212。计算机系统/服务器1202还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统1213可被提供用于从不可移动、非易失性磁介质(未示出,且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在该实例中,每个可以通过一个或多个数据介质接口连接到总线1208。如下面将进一步描绘和描述的,存储器1206可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的实施例的功能。
88.作为示例而非限制,具有一组(至少一个)程序模块1216的程序/实用程序1214以及操作系统、一个或多个应用程序、其它程序模块和程序数据可被存储在存储器1206中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。计算机1202的组件可以被实现为通常执行如这里描述的本发明的实施例的功能和/或方法的程序模块1216。图1的系统可以在一个或多个计算机系统1202中实现,其中如果它们在多个计算机系统1202中实现,则计算机系统可以通过网络通信。
89.计算机系统/服务器1202还可以与诸如键盘、指示设备、显示器1220等的一个或多
个外部设备1218、使得用户能够与计算机系统/服务器1202交互的一个或多个设备、和/或使计算机系统/服务器1202能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)通信。这种通信可以经由输入/输出(i/o)接口1222发生。此外,计算机系统/服务器1202可以经由网络适配器1224与一个或多个网络通信,网络诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)。如图所示,网络适配器1224经由总线1208与计算机系统/服务器1202的其它组件通信。应当理解,尽管未示出,但是可以结合计算机系统/服务器1202使用其他硬件和/或软件组件。示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
90.术语“实施例”、“多个实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”表示“本发明的一个或多个(但不是全部)实施例”,除非另有明确说明。
91.术语“包含”、“包括”、“具有”及其变体表示“包括但不限于”,除非另有明确说明。
92.除非另外明确规定,否则列举的项目列表并不意味着任何或所有项目是互斥的。
93.术语“一”、“一个”和“该”表示“一个或多个”,除非另有明确说明。
94.除非另外明确指出,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以直接通信或通过一个或多个中间物间接通信。
95.具有彼此通信的若干组件的实施例的描述并不暗示需要所有此类组件。相反,描述了各种可选组件以说明本发明的各种可能的实施例。
96.当在此描述单个设备或产品时,很明显,可以使用多于一个的设备/产品(无论它们是否协作)来代替单个设备/产品。类似地,在这里描述了多于一个设备或产品(无论它们是否协作)的情况下,将容易明白的是,可以使用单个设备/产品来代替多于一个设备或产品,或者可以使用不同数量的设备/产品来代替所示数量的设备或程序。设备的功能和/或特征可以替代地由一个或多个未明确描述为具有这样的功能/特征的其他设备来体现。因此,本发明的其它实施例不需要包括该设备本身。
97.为了说明和描述的目的,已经给出了本发明的各种实施例的上述描述。其不是穷举的,也不是要将本发明限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。本发明的范围不是由该详细描述来限定,而是由所附权利要求来限定。上述说明、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于在不脱离本发明的范围的情况下可以做出本发明的许多实施例,因此本发明在于所附权利要求书。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1