首页 / 专利库 / 电脑零配件 / 协处理器 / 虚拟化超大规模环境中的数据管理的装置和方法

虚拟化超大规模环境中的数据管理的装置和方法

阅读:204发布:2020-05-12

专利汇可以提供虚拟化超大规模环境中的数据管理的装置和方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种虚拟化超大规模环境中的数据管理方案。根据一个通用方案,可以配置 存储器 管理单元(MMU),以与包括多种类型的储存介质的异构存储系统 接口 连接。每种类型的储存介质都可以基于相应存储技术,并且可以与(各)性能特性关联。MMU可以接收对异构存储系统的数据 访问 。MMU可以确定异构存储系统的储存介质,以提供数据访问。根据与目标储存介质关联的至少一个性能特性和与 虚拟机 关联并且指出一个或者多个性能特性的服务 质量 标帜,可以选择目标储存介质。MMU可以利用虚拟机使数据访问路由到至少一个储存介质。,下面是虚拟化超大规模环境中的数据管理的装置和方法专利的具体信息内容。

1.一种装置,包括:
存储器管理单元,配置所述存储器管理单元,以:
与包括多种类型的储存介质的异构存储系统接口连接,其中每种类型的储存介质都基于相应存储技术,并且与一个或者多个性能特性关联;
虚拟机接收对所述异构存储系统的数据访问
确定来自所述异构存储系统的至少一个所述储存介质中的目标储存介质,以提供所述数据访问,其中至少部分地根据与所述目标储存介质关联的至少一个性能特性和服务质量标帜,选择所述目标储存介质,其中服务质量标帜与所述虚拟机关联并且指出虚拟机期望作为数据访问实现的部分的被满足的一个或者多个期望的储存介质性能特性;以及所述虚拟机使所述数据访问本地地路由到所述目标储存介质。
2.根据权利要求1所述的装置,其中配置所述存储器管理单元,以响应触发事件,将与所述虚拟机关联的数据从第一储存介质移动到第二储存介质。
3.根据权利要求2所述的装置,其中所述触发事件包括在预定时间周期内不访问所述数据。
4.根据权利要求2所述的装置,其中所述触发事件包括放松所述虚拟机保证的一个或者多个所述性能特性。
5.根据权利要求1所述的装置,其中所述服务质量标帜包括至少两个部分:
其中所述服务质量标帜的第一部分指出所述虚拟机保证的性能特性;并且其中所述服务质量标帜的第二部分指出所述虚拟机保证的所述性能特性的值范围。
6.根据权利要求1所述的装置,其中配置所述存储器管理单元,以:
保持与每个储存介质关联的可分配储存空间的数量的计数;并且
至少部分地根据与每个相应储存介质关联的可分配储存空间的所述数量和所述服务质量标帜,所述虚拟机使所述数据访问路由到所述储存介质中的至少一个。
7.根据权利要求6所述的装置,其中配置所述存储器管理单元,以在两个或者两个以上的所述储存介质之间分配与所述虚拟机关联的数据。
8.根据权利要求6所述的装置,其中配置所述存储器管理单元,以在两个或者两个以上的储存器件之间分配所述虚拟机的存储页面,其中所述两个或者两个以上的储存器件共享同一个物理地址空间。
9.根据权利要求1所述的装置,其中配置所述虚拟机,以执行多个应用;并且其中每个所述应用与多个指出所述虚拟机保证的一个或者多个性能特性的服务质量标帜关联。
10.根据权利要求1所述的装置,其中所述异构存储系统既包括易失性储存介质又包括非易失性储存介质。
11.根据权利要求1所述的装置,其中,所述存储器管理单元作为集成电路的一部分被包括。
12.根据权利要求1所述的装置,其中,所述存储器管理单元作为片上系统的一部分被包括,其中所述片上系统还包括处理器。
13.根据权利要求1所述的装置,其中,所述存储器管理单元被配置为至少部分地作为存储器控制器集线器和输入/输出控制器集线器两者操作。
14.根据权利要求1所述的装置,其中,所述存储器管理单元包括:
存储器控制器,配置所述存储器控制器以关于如何路由所述数据访问动态地做出确定;以及
至少一个协处理器,配置所述至少一个协处理器以支持所述存储器控制器做出确定,其中,所述存储器控制器和所述至少一个协处理器集成到一个单片中。
15.根据权利要求14所述的装置,其中,所述至少一个协处理器包括直接存储器存取电路。
16.根据权利要求1所述的装置,其中,所述存储器管理单元经由非基于分组的协议来路由所述数据访问。
17.根据权利要求1所述的装置,其中,所述存储器管理单元被配置为:
以统一的储存介质技术独立的格式接收数据访问,以及
以本来的储存介质技术依赖的格式本地地路由所述数据访问。
18.根据权利要求1所述的装置,其中,所述存储器管理单元包括:
多个存储接口,配置所述存储接口以与所述异构存储系统通信;以及
处理侧接口,配置所述处理侧接口,以与所述至少一个处理器通信。
19.根据权利要求1所述的装置,其中,所述存储器管理单元包括被配位为处理多个服务质量标帜的虚拟层
20.一种方法,包括:
从处理器执行的虚拟机接收对异构存储系统的数据访问,
其中所述异构存储系统包括多种类型的储存介质,其中每种类型的储存介质都基于相应存储技术,并且与一个或者多个性能特性关联;
存储器管理单元至少部分地根据与目标储存介质关联的至少一个性能特性和与所述虚拟机关联并且指出虚拟机期望作为数据访问实现的部分的被满足的一个或者多个期望的储存介质性能特性的服务质量标帜,确定所述数据访问的所述异构存储系统的目标储存介质;以及
所述存储器管理单元使所述数据访问至少部分地在所述处理器与所述目标储存介质之间路由。
21.根据权利要求20所述的方法,还包括,响应触发事件,将与所述虚拟机关联的数据从第一储存介质移动到第二储存介质。
22.根据权利要求21所述的方法,其中所述触发事件包括在预定时间周期内不访问所述数据。
23.根据权利要求21所述的方法,其中所述触发事件包括放松所述虚拟机保证的一个或者多个所述性能特性。
24.根据权利要求20所述的方法,其中所述服务质量标帜包括至少两个部分:
其中所述服务质量标帜的第一部分指出所述虚拟机保证的性能特性;并且其中所述服务质量标帜的第二部分指出所述虚拟机保证的所述性能特性的值范围。
25.根据权利要求20所述的方法,其中确定目标储存介质包括:
保持与每个储存介质关联的可分配储存空间的数量的计数;并且
至少部分地根据与每个相应储存介质关联的可分配储存空间的所述数量和所述服务质量标帜,选择目标储存介质。
26.根据权利要求20所述的方法,其中配置所述虚拟机,以执行多个应用;其中每个所述应用与多个指出所述虚拟机保证的一个或者多个性能特性的服务质量标帜关联;并且其中确定目标储存介质包括确定执行的哪个应用与所述数据访问关联。
27.一种装置,包括:
处理侧接口,配置所述处理侧接口,以接收存储系统的数据访问;
存储器路由器,配置所述存储器路由器,以:
确定所述存储器访问的目标是否是包括多种类型的储存介质的异构存储系统,其中每种类型的储存介质都基于相应存储技术,并且与一个或者多个性能特性关联;并且如果所述存储器访问的目标是异构存储系统,则至少部分地根据与所述目标储存介质关联的至少一个储存介质性能特性和与所述数据访问关联并且指出虚拟机期望作为数据访问实现的部分的被满足的一个或者多个期望的储存介质性能特性的服务质量标帜对所述数据访问选择所述异构存储系统的目标储存介质;以及
异构存储系统接口,配置所述异构存储系统接口,以致如果所述存储器访问的目标是异构存储系统,则使所述数据访问至少部分地路由到所述目标储存介质。
28.根据权利要求27所述的装置,其中配置所述存储器路由器,以响应触发事件,将与所述虚拟机关联的数据从第一储存介质移动到第二储存介质。
29.根据权利要求27所述的装置,其中配置所述存储器路由器,以:
保持与每个储存介质关联的可分配储存空间的数量的计数;并且
至少部分地根据与每个相应储存介质关联的可分配储存空间的所述数量和所述服务质量标帜,选择目标储存介质;
使得当优选储存介质低于可分配储存空间的阈值平时,选择较次优选储存介质作为所述目标储存介质。
30.一种装置,包括:
处理侧接口,配置所述处理侧接口,以接收存储系统的数据访问;
存储器路由器,配置所述存储器路由器,以:
保持与每个储存介质关联的可分配储存空间的数量的计数;
确定所述存储器访问的目标是否是包括多种类型的储存介质的异构存储系统,其中每种类型的储存介质都基于相应存储技术,并且与一个或者多个性能特性关联;并且如果所述存储器访问的目标是异构存储系统,则至少部分地根据与每个相应的储存介质相关的可分配储存空间的数量以及与所述目标储存介质相关联的至少一个储存介质性质特性以及与所述数据访问关联并且指出虚拟机期望作为数据访问实现的部分的被满足的一个或者多个储存介质性能特性的服务质量标帜对所述数据访问选择所述异构存储系统的目标储存介质;以及
异构存储系统接口,配置所述异构存储系统接口,以便如果所述存储器访问的目标是异构存储系统,则使所述数据访问至少部分地路由到所述目标储存介质。

说明书全文

虚拟化超大规模环境中的数据管理的装置和方法

[0001] 有关申请的相互参照
[0002] 本申请是2014年12月4日提交的标题为“UNIFIED ADDRESSING AND HIERARCHICAL HETEROGENEOUS STORAGE AND MEMORY”的专利申请No.14/561,204的部分连续案,并且根据35U.S.C.§120要求其优先权益,该专利申请No.14/561,204根据35U.S.C.§119又要求2014年8月19日提交的标题为“MECHANISM FOR MULTIPROCESSOR OPERATION USING UNIFIED ADDRESSING AND HIERARCHICAL HETEROGENEOUS STORE/MEMORY”的美国临时专利申请No.62/039,415的优先权益。兹通过引用合并这些早期提交的专利申请的主题。
[0003] 本申请根据35U.S.C.§119要求2014年11月20日提交的标题为“DATA MANAGEMENT SCHEME IN VIRTUALIZED HYPERSCALE ENVIRONMENTS”的临时专利申请No.62/082,604的优先权益。通过引用合并早期提交的专利申请的主题。

技术领域

[0004] 本说明书涉及数据储存,并且更具体地说,涉及在异构存储系统中数据的储存。

背景技术

[0005] 当讨论计算机架构设计中的性能问题时,在计算机架构中通常使用术语存储器分层结构(hierarchy)。传统上,计算机储存上下文中的“存储器分层结构”利用响应时间区别“分层结构”中的每级。由于响应时间、复杂性和容量通常有关,所以利用控制技术也可以区别各级(例如,晶体管储存器、电可擦可编程只读存储器磁性储存器、光学储存器等)。
[0006] 传统上,在存储器分层结构中,计算器件已经具有几个通用级。最快的第一级是处理器的寄存器和靠近执行单元的指令/数据高速缓存(传统上由静态随机存取存储器(SRAM)构成)。次最快的第二级可以是容量(size)显著大于前级的高速缓存的统一指令和数据高速缓存。该级通常在一个或者多个CPU和诸如图形处理单元(GPU)、数字信号处理(DSP)等的其他执行单元或者处理单元之间共享。外部集成电路、传统上由动态RAM(DRAM) 构成的一些或者全部主存储器或者系统存储器可以用作高速缓存。存储器分层结构的下一级常常比前面的级慢得多。其通常包括磁存储器或者固态存储器(例如,硬盘或者NAND闪存技术等),并且被称为“二次储存器”。下一级最慢,并且传统上包括大容量介质(例如,光盘、磁带备份等)。发明内容
[0007] 根据一个通用方案,装置可以包括存储器管理单元。可以配置该存储器管理单元,以与包括多种类型的储存介质的异构存储系统接口连接。每种类型的储存介质都可以基于相应存储技术,并且可以与一个或者多个性能特性关联。可以配置存储器管理单元,以从虚拟机接收对异构存储系统的数据访问。还可以配置存储器管理单元,以确定异构存储系统的储存介质的至少一个,从而提供数据访问。至少部分地根据与目标储存介质关联的至少一个性能特性和与虚拟机关联并且指出一个或者多个性能特性的服务质量标帜,可以选择目标储存介质。可以配置存储器管理单元,以利用虚拟机使数据访问路由到至少一个储存介质。
[0008] 根据另一个通用方案,一种方法可以包括从处理器执行的虚拟机接收对异构存储系统的数据访问。异构存储系统可以包括多种类型的储存介质,每种类型的储存介质都基于相应存储技术,并且与一个或者多个性能特性关联。该方法还可以包括,存储器管理单元至少部分地根据与目标储存介质关联的至少一个性能特性和与虚拟机关联并且指出虚拟机保证的一个或者多个性能特性的服务质量标帜,确定数据访问的异构存储系统的目标储存介质。该方法还可以包括,存储器管理单元使数据访问至少部分地在处理器与目标储存介质之间路由。
[0009] 根据另一个通用方案,一种装置可以包括处理侧接口,配置该处理侧接口,以接收存储系统的数据访问。该装置可以包括存储器路由器,配置该存储器路由器,以确定存储器访问的目标是否是包括多种类型的储存介质的异构存储系统,其中每种类型的储存介质都基于相应存储技术,并且与一个或者多个性能特性关联;并且如果该存储器访问的目标是异构存储系统,则至少部分地根据与目标储存介质关联的至少一个性能特性和与数据访问关联并且指出一个或者多个性能特性的服务质量标帜对数据访问选择异构存储系统的目标储存介质。该装置还可以包括异构存储系统接口,配置该异构存储系统接口,以使如果存储器访问的目标是异构存储系统,则使数据访问至少部分地路由到目标储存介质。
[0010] 附图和下面的描述中阐述了一个或者多个实现的细节。根据描述和附图以及根据权利要求,其他特征显而易见。
[0011] 权利要求书更全面阐述了结合至少一个图示出并且描述的用于数据储存并且更具体地说用于将数据储存在异构存储系统中的系统和/或者方法。

附图说明

[0012] 图1是根据所公开主题的系统的示例性实施例的方框图
[0013] 图2是根据所公开主题的装置的示例性实施例的方框图。
[0014] 图3a是根据所公开主题的系统的示例性实施例的方框图。
[0015] 图3b是根据所公开主题的系统的示例性实施例的方框图。
[0016] 图3c是根据所公开主题的系统的示例性实施例的方框图。
[0017] 图4是根据所公开主题的装置的示例性实施例的方框图。
[0018] 图5是根据所公开主题的技术的示例性实施例的流程图
[0019] 图6a是根据所公开主题的系统的示例性实施例的方框图。
[0020] 图6b是根据所公开主题的系统的示例性实施例的方框图。
[0021] 图7是根据所公开主题的系统的示例性实施例的方框图。
[0022] 图8是根据所公开主题的技术的示例性实施例的流程图。
[0023] 图9是可以包括根据所公开主题的原理形成的器件的信息处理系统的原理方框图。
[0024] 各种附图中相似的参考编号指相似的元件。

具体实施方式

[0025] 下面将参考附图更全面描述各种示例性实施例,附图示出一些示例性实施例。然而,本公开的主题可以以许多不同方式实现,并且不应当将其理解为局限于在此阐述的示例性实施例。相反,提供这些示例性实施例,使得本公开彻底和完整,并且对本技术领域内的技术人员全面传达本公开的主题的范围。附图中,为了清楚起见,可以放大层和区域的尺寸和相对尺寸。
[0026] 应当明白,当称一个元件或者层位于另一个元件或者层“上”、一个元件或者层“连接”到或者“耦合”到另一个元件或者层时,其能够直接位于另一个元件或者层“上”,能够直接连接到或者耦合到另一个元件或者层,也可以存在中间元件。相反,当称一个元件“直接”位于另一个元件或者层“上”、“直接连接到”或者“直接耦合到”另一个元件或者层时,不存在中间元件或者中间层。在整个说明书中,相似的编号指相似的元件。如在此使用的术语“和 /或者”包括一个或者多个关联列项的任何一个及其所有组合。
[0027] 应当明白,尽管在此为了描述各种元件、部件、区域、层和/或者区段,可以使用术语第一、第二、第三等,但是这些元件、部件、区域、层和/或者区段不应当受这些术语的限制。这些术语用于将一个元件、部件、区域、层或者区段与另一个元件、部件、区域、层或者区段区别开。因此,可以将下面讨论的第一元件、部件、区域、层或者区段称为第二元件、部件、区域、层或者区段,而不脱离本公开的主题的教导。
[0028] 为了便于描述,在此可以利用诸如“之下”、“下面”、“低于”、“之上”、“上面”等的空间关系术语描述一个元件或者特征与另一个(另一些)元件或者特征的关系,如图所示。应当明白,空间关系术语旨在除了图中所示的方位还包括在使用中的或者操作中的器件的不同方位。例如,如果图中的器件被翻转,则被描述为另一个元件或者特征“下面”的或者“之下”的元件的方位被确定为在另一个元件或者特征的“上面”。因此,示例性术语“下面”能够既包括上面又包括下面的方位。可以以其他方式确定器件的方位(旋转90度或者出于其他方位),并且因此理解在此使用的空间关系描述语。
[0029] 在此使用的技术术语仅出于描述特定示例性实施例的目的,而不旨在限制本公开的主题。如在此使用的单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另外清楚地指出。还应当明白,当在此使用时,术语“包括”和/或者“含括”指明存在所述的特征、整数、步骤、操作、元件、和/或者部件,但不排除存在或者附加一个或者多个其他特征、整数、步骤、操作、元件、部件和/或者其组合。
[0030] 在此参考截面视图描述示例性实施例,该截面视图是理想化的示例性实施例(和中间结构)的原理视图。严格说来,预料因为例如制造技术和/或者公差而与视图的形状有差异。因此,不应当将示例性实施例理解为局限于在此所示区域的特定形状,而应当理解为包括因为例如制造引起的形状偏差。例如,被示为矩形的植入区通常具有圆形或者弯曲特征并且/或者在其边缘具有梯度植入密度,而非从植入区到非植入区的双态变化。同样,由植入形成的埋置区可以在埋置区与进行植入的表面之间的区域内产生一些植入。因此,该图所示的区域的性质是原理图,并且其形状不旨在示出器件的一个区域的实际形状,并且不旨在限制本公开的主题的范围。
[0031] 除非另外指出,在此使用的所有术语(包括科技术语)都与本公开的主题所属技术领域内的普通技术人员通常理解的意义相同。还应当明白,应当将诸如通常使用的字典中定义的术语理解为具有符合其在有关技术背景下的意义的意义,而不以理想化的或者非常正式的意义理解其,除非在此这样清楚地定义。
[0032] 下面将参考附图详细解释示例性实施例。
[0033] 图1是根据所公开主题的系统100的示例性实施例的方框图。在所示的实施例中,示出了用于组织并且操纵具有各种存储和/或者储存技术(例如, DRAM、NAND、硬盘等)的计算系统的机制。
[0034] 在各种实施例中,系统100可以包括:处理器102、存储器控制器开关或者互连104以及异构存储系统106。在各种实施例中,异构存储系统106 可以包括多个不同的储存介质(例如,储存介质116、126、136、146等)。在这种实施例中,异构存储系统106可以包括基于各种储存技术的不同类型的储存介质。在一些实施例中,这些技术可以包括但并不局限于例如: DRAM、相变RAM(PRAM)、NAND或者闪速存储器(例如,SSD等)、阻性RAM(RRAM)、磁阻RAM(MRAM)、磁存储器(例如,HDD等) 等。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0035] 每种存储/储存技术可以具有不同的功率、速度、吞吐量、容量和/或者成本特性。更一般地说,可以将这些特性称为“性能特性”。因为这些不同的性能特性,所以在该系统中,传统上将采用不同存储技术的储存介质分别类。例如,处理器102通过第一协议和第一芯片组组件或者电路(例如,集成存储器控制器(MCH)、芯片组的北桥等)访问快速但是易失性的存储器 (例如,DRAM等)。相反,处理器102通过第二协议并且可能通过第二芯片组组件或者电路(例如,输入/输出(I/O)控制器集线器(ICH)、芯片组的南桥等)访问较慢但是非易失性的存储器(例如,HDD、SSD等)。使用特定协议和专用电路使得在系统中难以改变储存技术(例如,因为改变需要利用一种技术代替另一种技术等)。在所示的实施例中,异构存储系统106 和存储器互连104允许在该系统100内采用各种存储技术。
[0036] 在所示的实施例中,系统100包括处理器102。处理器102又可以包括主中央处理单元(CPU)190或者多个CPU芯。在各种实施例中,可以配置 CPU 190,以执行软件程序,该软件程序又访问并且操纵数据(例如,数据 194等)。在一些实施例中,处理器102可以包括高速缓存分层结构192,该高速缓存分层结构192形成系统100的存储器分层结构的第一级。在各种实施例中,高速缓存分层结构192可以包括排列于多级(例如,级0(L0)、级1(L1)、级2(L2)等)中的SRAM。
[0037] 当处理器102不能访问高速缓存分层结构192中的期望数据194时,处理器190可以尝试通过(例如,主存储器、硬盘驱动器等中的)存储器分层结构的另一层访问数据194(例如,读数据、写数据等)。在所示的实施例中,处理器102可以包括存储器输入/输出(I/O)接口190,配置该存储器输入/ 输出(I/O)接口190,以访问位于处理器102外的存储器分层结构的一个或者多个级。
[0038] 此外,在各种实施例中,处理器102可以包括存储器输入/输出(I/O) 接口193,配置该存储器输入/输出(I/O)接口193,以与存储器通信。在所示的实施例中,可以配置该存储器I/O接口193,以与存储器互连104通信,并且通过存储器互连104与异构存储系统106通信。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0039] 在所示的实施例中,系统100可以包括存储器互连104。可以配置存储器互连104,以将处理器102的数据访问(例如,数据写、数据读等)路由到目标储存介质。在所示的实施例中,目标储存介质可以包括在异构存储系统106中。
[0040] 在一些实施例中,异构存储系统106可以包括多个不同类型的储存介质。作为非限制性例子,异构存储系统106可以包括四个不同储存介质(例如,储存介质116、126、136和146等),每个储存介质都基于不同的存储技术(例如,DRAM、PRAM、闪速存储器、磁存储器等),并且具有不同的性能特性(例如,易失性、速度、快写速度、非易失性、容量、限制写周期等)。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0041] 在这种实施例中,可以希望将不同的数据存储于不同类型的存储器中。如上所述,可以配置存储器互连104,以确定哪个储存介质应当存储数据194,或者哪个储存介质正存储数据194,并且将处理器的数据访问路由到期望的储存介质。在各种实施例中,可以配置存储器互连104,以至少部分地根据各种储存介质(例如,储存介质116、126、136和146等)的一个或多个性能特性,将数据访问路由到目标储存介质或者选择的储存介质。
[0042] 例如,可以将经常访问的或者被认为是临时数据的一个数据194存储于易失性而快速的储存介质(例如,DRAM储存介质116)中,而可以将很少访问的或者永久(或半永久)存储的一个数据194存储于非易失性储存介质 (例如,HDD储存介质146)中。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0043] 在各种实施例中,关于什么类型的储存介质或者性能特性重要或者与特定数据194关联,数据194可以与特定数据类型指示符或者性能指示符(图 2所示的)关联,该特定数据类型指示符或者性能指示符对存储器互连104 提供提示(hint)、地址范围或者地址值、服务质量或者指令。在各种实施例中,每种数据类型都可以与一个或者多个希望的或者最佳的诸如例如访问速度(例如,读和/或者写性能)、持久性、储存能量效率、访问大小(access size) 等的存储或者储存要求或者性能关联。
[0044] 例如,如果数据194被标记了指出数据194是临时数据的数据类型或者与其关联,则可以将数据194路由到DRAM储存介质116。在这种实施例中,存储器互连104可以确定DRAM储存介质116提供的性能特性与关联数据类型的良好(或者可能最好)匹配。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0045] 在各种实施例中,可以配置存储器互连104,以根据数据类型,优选地将该数据路由到多种储存介质中的一个。在一些实施例中,对于数据而言多种储存介质是可接受的。在这种实施例中,可以配置存储器互连104,以根据一个或者多个判据(例如,访问速度、易失性等)对可接受的储存介质进行排队,并且然后,根据其他因素(例如,储存器的可用容量、可用总线带宽、可用的写端口的数量,哪个储存介质已经在存储数据、服务质量和预留等),选择目标储存介质。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0046] 在一些实施例中,处理器102或者处理器102执行的一个软件(例如,应用、操作系统、设备驱动器等)可以动态设定数据类型。在另一个实施例中,当编译或者创建软件时或者在运行时,根据操作系统的指示,可以静态设定数据类型。在又另一个实施例中,一个或者多个数据类型可以与特定存储地址区或者各存储地址区关联。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0047] 正如下面结合图2所做的详细描述,在各种实施例中,存储器互连104 可以对处理器102提供统一的或者公用的接口或者协议,用于访问多个储存介质116、126、136和146。此外,存储器互连104可以对各种储存介质116、 126、136和146提供相应接口,该接口采用多个储存介质116、126、136 和146使用的相应协议。在这种实施例中,可以配置存储器互连104,以将数据访问从统一访问协议转移到用于存储该数据的储存介质采用的储存介质专用协议,并且对于对数据访问的任何响应,反之亦然。
[0048] 在各种实施例中,每个存储介质(例如,储存介质116、126、136和 146)可以分别包括介质控制器(例如,储存器控制器117、127、137和147),配置该介质控制器,以通过适当协议与存储器互连104接口连接。在一些实施例中,一个或者多个储存介质116、126、136和146可以采用相同或者类似的协议。在各种实施例中,每个存储介质(例如,储存介质116、126、136 和146)可以分别包括相应存储部分(例如,存储器控制器118、128、138 和148),配置该存储部分,以存储数据。
[0049] 正如下面结合图4所做的详细描述,在各种实施例中,异构存储系统 106可以包括传统存储器分层结构的多个层。例如,异构存储系统106可以既包括存储器分层结构的传统第二层(通过DRAM储存介质116)又包括存储器分层结构的传统第三层(通过SSD储存介质136和HDD储存介质146)。在这种实施例中,处理器102可以不负责判定访问传统存储器分层结构的哪个层。相反,可以配置存储器互连104,以判定访问传统存储器分层结构的哪个层。
[0050] 图2是根据所公开主题的装置200的示例性实施例的方框图。在一些实施例中,装置200可以是或者可以包括存储器互连(图1的存储器互连104)。在各种实施例中,可以配置装置200,以至少部分地根据与选择储存介质的相应存储技术关联的一个或者多个性能特性,将来自处理器的数据访问290 路由到多个储存介质中的一个。
[0051] 在一些实施例中,装置200可以包括处理器I/O接口202。在这样的实施例中可以配置处理器I/O接口202,以接收处理器发送的数据访问290(图 2中未示出,但是通过离开页面的双向箭头表示为正被连接)。例如,在各种实施例中,可以配置处理器I/O接口202,以与处理器的存储器I/O接口(例如,图1的存储器I/O接口193)交互。还可以配置处理器I/O接口202,以将数据访问290的结果(例如,写确认、请求数据194等)发送到处理器。在各种实施例中,可以配置处理器I/O接口202,以通过统一访问协议与处理器通信,该统一访问协议允许处理器访问各种储存介质,而与可以使用的单独协议无关。
[0052] 在各种实施例中,装置200可以包括多个存储器接口206(例如,存储器接口216、226、296等)。在这种实施例中,可以配置每个存储器接口206,以将数据访问200发送到相应存储介质(图2中未示出,但是通过离开页面的双向箭头表示为正被连接)。还可以配置每个存储器接口206,以接收处理器的数据访问290的结果(例如,写确认、请求数据194等)。在各种实施例中,可以配置每个存储器接口206,以通过储存介质专用协议或者储存介质类型专用协议,与特定类型的储存介质通信。在一些实施例中,多个储存介质可以使用或者采用相同的存储器接口。例如,系统可以包括PRAM和 DRAM,该PRAM和DRAM利用相同的接口协议,并且因此,都可以被通用存储器控制器204访问。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0053] 在一个实施例中,装置200可以包括可配置存储器控制器204。在这种实施例中,可以配置可配置存储器控制器204,以使数据访问290在处理器与多个储存介质中的一个之间动态路由。如上所述,在各种实施例中,可配置存储器控制器204可以至少部分地根据与相应储存介质中的每个关联的一个或者多个性能特性进行路由选择判定。
[0054] 在各种实施例中,装置200可以包括一组性能特性219。在这种实施例中,性能特性219可以指出与每个相应存储器接口206关联的一个或者多个性能特性,并且通过代理,该储存介质与存储器接口206可通信地耦合。在这种实施例中,通过扫描或者查询储存介质(例如,在自举时,在器件初始化时,响应诸如热调换指示的触发事件等),可以获得性能特性219。在另一个实施例中,可以从外部信源(例如,程序、互联网、设备驱动器、用户等) 将性能特性219输入存储该性能特性219的装置200的存储器。
[0055] 在一些实施例中,性能特性219可以包括指出相对准确度或者粗粒度准确度的信息或者值(例如,大设计公差、最低性能保证、信用、存储器芯片中的存储器组的数量、到存储器芯片的数据总线信号的数量、访问存储页的列或者行要求的时间、存储器读访问或者写访问的时间等)。然而,在另一个实施例中,性能特性219可以包括指出细粒度准确度的信息或者值(例如,由实际储存器件测量的性能特性、紧密设计公差等)。在又另一个实施例中,性能特性219可以包括各种级别或者粒度的准确度。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0056] 在所示的实施例中,存储器控制器204可以参考或者读取性能特性219,并且当判定哪个储存介质用于数据访问290时,采用性能特性219(全部或者部分地)。正如下面参考其他图所述,当路由选择数据访问290(例如,高速缓存命中、可用存储容量、诸如低功率操作模式的操作模式等)时,可以认为其他因素有关。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0057] 如上所述,在各种实施例中,数据访问290可以包括数据类型指示符294。在一些实施例中,其可以取在传统数据访问消息之前发送的第一消息的形式。在一个实施例中,数据类型指示符294可以包括指出将所有未来数据访问(下一个数据类型消息之前)看作特定数据类型的一部分的消息。在另一个实施例中,数据类型指示符294可以包括数据访问消息290中的标帜、标记或者字段。在又另一个实施例中,数据类型指示符294可以隐藏到数据访问消息290。例如,数据访问290可以是与特定数据类型关联的存储地址。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0058] 在各种实施例中,装置200的存储器可以存储一个或者多个储存偏好 239。这些储存偏好239可以影响如何路由数据访问290和将数据访问290 路由到何处。储存偏好239的例子可以包括(但并不局限于):将数据存储于低功率储存介质中的偏好;使给定存储介质的数据吞吐量、数据稳定性和 /或者可靠性最大的偏好;对储存介质(例如,具有有限数量的写周期的存储技术)的消耗不超过一定平的偏好;等。当确定路由选择数据访问290时,可以考虑这些储存偏好239(以及性能特性219和数据类型294等)。
[0059] 如上所述,在各种实施例中,可以配置储存器控制器204,以将数据类型294与存储器层级参数229和各种储存介质的性能特性219进行比较。然后,存储器控制器204可以尝试使数据194与给出流行储存偏好239的特定储存介质匹配。然后,可以使数据访问290通过其关联存储器接口206路由到选择的储存介质或者目标储存介质。
[0060] 在各种实施例中,随着储存介质的状况变化,可以动态更新储存偏好 239和/或者性能特性219。例如,如果储存介质满了或者用尽了用于存储数据194的可用存储位置,则这可能导致性能特性219被更新。在另一个实施例中,如果储存介质遭受数据错误,或者更一般地,超过某个特性的预定阈值(例如,操作温度、错误数量、给定的写周期数等),则可以更新性能特性219。
[0061] 在又另一个实施例中,如果对装置200或者包括装置200的系统出现触发事件(例如,功率供应发生变化、物理位置发生变化、系统采用的网络发生变化、用户发出指令等),则可以改变储存偏好239。在一些实施例中,可以存在多组储存偏好239,并且在给定瞬间选择使用哪组储存偏好239可以取决于系统环境或者系统设定。例如,如果系统(并且因此,装置200)正通过基本上不受限制的功率供应进行操作(例如,来自墙上插座的电功率等),则储存偏好239可以指定超过可靠性的性能偏好(例如,易失性存储器的速度和容差等)。相反,如果系统发生变化(例如,来自墙上插座的电功率等被拔掉),并且然后,通过有限功率供应(例如,电池等)进行操作,则可以使用指明在电源故障的情况下对低功率消耗并且提高可靠性的偏好 (例如,对低功率、非易失性存储器等的偏好)的第二组储存偏好239。动态改变活动储存偏好239的触发事件的另一个例子可以是超过阈值的储存介质(例如,变得太热等),然后,可以改变储存偏好239,以避免热储存介质,因此,使其有机会冷却。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0062] 在各种实施例中,装置200可以包括一个或者多个处理器或者加速器处理器208。在这种实施例中,这些加速器处理器208可以是被配置来作为路由操作的一部分执行存储器控制器204的特定任务的专用电路、功能单元块 (FUB)和/或者组合逻辑块(CLB)。在一些实施例中,特定任务可以包括帮助确定数据访问290应当路由到哪个储存介质。在另一个实施例中,特定任务可以包括在通信协议之间转换或者翻译数据访问290或者其一部分(例如,数据194),或者相反,作为路由操作的一部分。在一些实施例中,特定任务可以是直接存储器访问(DMA)260,使得在储存介质116、126、136、 146等的任何一个之间直接传送。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0063] 在一些实施例中,装置200可以包括协议翻译电路256,配置该协议翻译电路256,以将第一协议(例如,处理器采用的统一协议等)的数据访问 290翻译为第二协议(例如,储存介质专用协议等),反之亦然。在一些实施例中,可以将协议翻译电路256看作协处理器或者加速器处理器208。
[0064] 在各种实施例中,装置200可以包括加密电路258,配置该加密电路258,以至少对数据访问290的数据部分194进行加密和/或者解密。在一些实施例中,在数据194经过使储存介质与装置200耦合,或者使处理器与装置200 耦合的总线时,可以对数据194加密。在各种实施例中,一个子集的多个储存介质可以包括加密数据。在一些实施例中,可以将加密电路258看作协处理器或者加速器处理器208。
[0065] 如下参考图3a所述,在各种实施例中,可以配置装置200,以将多个储存介质处理为高速缓存或者高速缓存分层结构。与处理器或者处理器芯 (例如,图1的高速缓存分层结构192)紧密集成的传统高速缓存分层结构包括用于检测一个数据是否处于高速缓存级(例如,翻译后援缓冲器(TLB)、存储地址标帜等)的机制和结构以及用于管理整个高速缓存分层结构的内容 (例如,高速缓存命中/未命中消息、窥探消息、高速缓存目录、填充请求等) 的协议。然而,诸如主存储器(例如,DRAM等)或者二次储存器(例如, HDD、SSD等)的传统储存介质缺少这些结构和通信协议。在所示的实施例中,装置200可以包括对多个已被组织为层级系统并且作为高速缓存分层结构(位于处理器外部)操作的储存介质执行相同任务的结构。
[0066] 在所示的实施例中,装置200可以包括高速缓存或者层级组织电路252。在各种实施例中,可以配置该高速缓存或者层级组织电路252,以将多个储存介质组织为虚拟高速缓存分层结构或者组织结构(例如,层级、组等)。作为例子,在此集中描述高速缓存,并且参考图3b和3c讨论层级组的组织。
[0067] 在这种实施例中,可以配置高速缓存组织电路252,以将储存介质指定为高速缓存分层结构中的层。在各种实施例中,这可以根据一个或者多个储存器类型性能特性实现。例如,快速而易失性储存介质(例如,DRAM等) 可以处于分层结构中的较高层,而较慢但是非易失性的储存介质(例如,HDD 等)可以处于分层结构的较低层。在一些实施例中,分层结构中对层的编组或者分配可以由一组存储器层级参数229或者储存偏好239决定。
[0068] 在各种实施例中,由于数据访问290由存储器控制器204处理,所以可能发生当前存储(或者要存储)数据194的问题。由于储存介质可以不具有处理高速缓冲式查询(例如,高速缓冲命中请求、窥探等)的能,所以装置200或者其他器件可以负责对什么数据194存储在何处保持跟踪。在各种实施例中,装置200可以包括高速缓存查用表254,配置该高速缓存查用表 254,以跟踪数据194或者与该数据关联的存储地址当前存储于何处。
[0069] 例如,如果数据访问290是读请求,则高速缓存查用表254可以指出数据194存储于虚拟高速缓存的最高层级,并且存储器控制器204可以使数据访问290路由到较高层级储存介质(例如,与存储器类型1接口216耦合的储存介质等)。在另一个例子中,高速缓存查用表254可以指出数据194未存储于虚拟高速缓存的最高层级中,而存储于次最高层级中,并且存储器控制器204可以使数据访问290路由到储存介质(例如,与存储器类型2接口 226耦合的储存介质等)。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0070] 在另一个例子中,如果数据访问290是写请求,则高速缓存查用表254 可以指出在虚拟高速缓存的最高层级中存在数据194可用的空间,并且存储器控制器204可以使数据访问290路由到适当储存介质(例如,与存储器类型1接口216耦合的储存介质等)。在又另一个例子中,高速缓存查用表254 可以指出在虚拟高速缓存的最高层级中不存在数据194可用的空间,但是存储器控制器204可以因为各种原因(例如,如数据类型294、储存偏好239 等决定的)非常希望将数据194存储于虚拟高速缓存的最高层级中。在这种实施例中,存储器控制器204可以将一个数据逐出最高层级,并且使其移动到较低层级(在这样做时,更新高速缓存查用表254),并且然后,将新数据 194存储于虚拟高速缓存的最高层级中的新可用储存位置。在这种实施例中,可以配置装置200,以独自产生或者发出数据访问,从而对虚拟高速缓存执行维护。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0071] 在各种实施例中,在每次发生对虚拟高速缓存分层结构的任何数据访问 290时,存储器控制器204都可用更新或者保持高速缓存查用表254。在一个实施例中,可以将高速缓存/层级组织电路252和/或者高速缓存查用表254 看作协处理器或者加速器处理器208。
[0072] 应当明白,上面仅是协处理器或者加速器处理器208的几个说明性例子,所公开的主题并不局限于此。在各种实施例中,其他协处理电路250可以包括在装置200和协处理器或者加速器处理器208中。
[0073] 图3a是根据所公开主题的系统300的示例性实施例的方框图。在各种实施例中,可以使系统300包括图1所示系统100的变型或者不同型式。
[0074] 在所示的实施例中,示出了多处理器系统。在这种实施例中,系统300 可以包括第二处理器302。在各种实施例中,多个处理器可以存在于系统中(例如,4个、6个、8个、16个处理器等),但是出于说明的目的,仅示出两个。同样,单个处理器芯片或者集成电路可以包括多个CPU芯。
[0075] 例如,在一个实施例中,服务器机柜可以包括多个多处理器计算子系统、刀锋(blade)、橇(sled)或者单元。在这种实施例中,任何一个多处理器刀锋都可以将数据访问发送到异构存储系统106。在一些这种实施例中,可以包括存储器控制器或者互连304a,作为加速器子系统、刀锋、雪橇或者单元的一部分,并且各种计算刀锋可以耦合到加速器刀锋。在这种实施例中,可以配置存储器互连304a,以使来自多个计算单元(例如,处理器102和 302等)的数据访问聚合,并且将它们分配到异构的多个储存介质(例如,异构存储系统106等)。在一些实施例中,存储器互连304a还可以有助于一些本地业务操作,诸如两个子系统存储器类型之间的对等通信。
[0076] 在各种实施例中,如果多个处理器包括在系统中,则该系统可以采用通过将这种条目用作处理器ID或者类似标识符可以扩展地址映射存储器类型的方案。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0077] 此外,图3a还示出了存储器互连340a能够将异构存储系统106组织为高速缓存分层结构305的能力。在所示的实施例中,高速缓存分层结构305 可以仅包括异构存储系统106的一个子集,尽管在另一个实施例中,可以包括整个异构存储系统106。具体地说,在所示的实施例中,高速缓存分层结构305可以包括第一储存介质116(例如,DRAM等),作为高速缓存分层结构305的最高层级。高速缓存分层结构305可以包括第二储存介质126(例如,PRAM等),作为高速缓存分层结构305的中间层级。高速缓存分层结构305可以包括第三储存介质136(例如,快闪存储器等),作为高速缓存分层结构305的最低层级,并且第四储存介质
146(例如,HDD等)可以保留在高速缓存分层结构305的外部。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0078] 如上所述,高速缓存分层结构305可以由存储器互连304a组织,并且更具体地说,存储器互连304a包括高速缓存组织电路352a。在这种实施例中,高速缓存组织电路352a可以监视到高速缓存分层结构305的所有数据访问,并且指令存储器互连304a将数据存储于何处或者何处可以存储数据。
[0079] 例如,处理器102可以请求读数据(通过数据访问392)。存储器互连 304a可以认为该数据访问去往高速缓存分层结构305(例如,与第四储存介质146相反,或者与分层结构的特定成员相反等)。在这种实施例中,存储器互连304a可以询问高速缓存组织电路352a(或者查用表,如上所述)哪个储存介质包括期望数据。在所示的实施例中,该数据可以存储于第一储存介质116中,并且数据访问392可以路由到此。在另一个实施例中,该数据可能已经存储于第二储存介质126或者第三储存介质136中,并且适当时,数据访问392路由到此。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0080] 在另一个例子中,处理器102可以请求写数据(通过数据访问392)。此外,存储器互连304a可以认为该数据访问正在去往高速缓存分层结构305 (例如,与第四储存介质146相反,或者与分层结构中的特定成员相反等)。存储器互连304a可以询问高速缓存组织电路352a(或者查用表,如上所述) 如果存在储存介质,则哪个储存介质包括期望数据。在该例子中,高速缓存组织电路352a可以对高速缓存分层结构305的全部三个层级包括该数据做出响应。在这种实施例中,存储器互连304a可以根据各种判据(例如,高速缓存层级、数据类型、性能特性、储存偏好等)选择任何层级。
[0081] 在所示的实施例中,该数据可以存储于第一储存介质116中,并且数据访问392可以路由到此。在这种实施例中,高速缓存组织电路352a可以在其内表中将存储于第三储存介质136和第二储存介质126中的数据拷贝标记为无效。在这种实施例中,可以配置存储器互连304a,以对高速缓存分层结构305执行高速缓存相干操作。
[0082] 在一个实施例中,数据访问394和396说明可以配置存储器互连304a,以独自开始数据访问。在所示的实施例中,为了维护或者管理高速缓存分层结构305可以这样做,尽管可以有其他原因。具体地说,在一个实施例中,数据写(例如,数据访问392)已经更新或者已经将新数据写到较高高速缓存级(例如,储存介质116)后,可以认为该数据在较低高速缓存级(例如,储存介质126和136)中的拷贝无效或者失效。
[0083] 在各种实施例中,可以配置存储器互连304a,以在较低高速缓存级中镜像存储于较高高速缓存级中的数据。在一个这种实施例中,如果包括该数据的分层高速缓存存储系统305的较高层包括易失性存储介质,则这可以包括在分层高速缓存存储系统305的非易失性层中镜像该数据。
[0084] 在所示的实施例中,将数据写到较高高速缓存层(例如,储存介质116) 后,存储器互连可以启动数据访问394,以将该数据写到下一个高速缓存层 (例如,储存介质126)。此外,再当这被完成时,通过数据访问396,可以将数据拷贝到下一个高速缓存层(例如,储存介质136)。在这种实施例中,该数据被镜像后,可以认为该数据有效或者刷新。通过DMA电路(例如,图2所示的DMA电路260),可以便于执行这种存储器到存储器转移。在所示的实施例中,数据访问394和396被示为从较高高速缓存层读数据和将数据写到较低高速缓存层。在一些实施例中,存储器互连304a可以包括可以存储数据的缓冲器或者其他临时储存元件。在这种实施例中,数据访问394 和396可以仅包括从缓冲器写到较低高速缓存层。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0085] 在各种实施例中,启动数据访问的存储器互连304a可以包括读数据、写数据、移动数据、修改数据和/或者删除数据。在这种实施例中,存储器互连304a可以对异构存储系统106执行维护操作。在另一个实施例中,存储器互连304a可以在高速缓存层中向上或者向下移动数据。例如,在一个实施例中,在较频繁访问数据时,可以配置存储器互连304a,以在高速缓存分层结构中向上移动数据,从而提供较快访问。相反,在另一个实施例中,在不频繁访问数据时,可以配置存储器互连304a,以在高速缓存分层结构中向下移动数据,从而增大存储较频繁访问的数据的可用空间。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0086] 图3b是根据所公开主题的系统301的示例性实施例的方框图。在所示的实施例中,系统301可以包括存储器互连304b。存储器互连304b可以包括层级组织电路352b。
[0087] 在所示的实施例中,系统301可以包括异构存储系统306。除了少量不同,异构存储系统306可以与图1和3a的异构存储系统相同。例如,第三储存介质336可以基于HDD技术,代替图1和3a的闪速或者NAND技术。在这种实施例中,多个储存介质(例如,储存介质336和146)可以基于相近或者相同的技术(例如,磁储存器等)。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0088] 此外,在所示的实施例中,闪速式储存介质136已经从第三储存介质点移开,并且现在是第二储存介质。系统300中根本不存在图1和3a的PRAM 式储存介质。在这种实施例中,异构存储系统306包括DRAM式储存介质 (储存介质116)、闪速/NAND式储存介质(储存介质136)以及两个磁存储介质(储存介质336和146)。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0089] 如上所述,系统300可以以分层结构方式将这些不同的存储/储存类型组织成不同层级。在一些实施例中,如上参考图3a所述,可以将层级组织成高速缓存层,其中一个或者多个层级优于或者先于其他层级访问。在其他实施例中,诸如图3b和3c所示的实施例,组织可以不基于高速缓存。
[0090] 在各种实施例中,该组织可以由层级组织电路352a执行,并且该组织至少部分地基于存储层级参数、性能特性和/或者数据类型需要。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0091] 在所示的实施例中,可以通过储存或者存储技术组织层级。在这种实施例中,第一存储层级312可以包括DRAM或者第一储存介质116。第二存储层级322可以包括NAND或者第二储存介质136。第三存储层级332可以包括磁性储存介质336和146。
[0092] 在这种实施例中,当从处理器102收到数据访问380时,存储器互连 304b可以确定哪个存储层级(例如,层级312、322或者332)将完成或者提供数据访问380。如上所述,该判定可以基于各因素,诸如:与数据访问 380关联的数据的数据类型;不仅独立存储介质的性能特性而且层级本身的性能特性;以及/或者一组储存偏好。在各种实施例中,根据为了接收数据访问380而选择的存储层级,数据访问380可以作为数据访问381、382或者 383路由。
[0093] 在各种实施例中,存储层级可以包括各种复杂的数据结构或者储存系统。例如,第三存储层级332包括两个储存介质(例如,储存介质336和146),并且可以包括独立磁盘冗余阵列(RAID)形式的储存虚拟。这种RAID组织的例子可以包括:镜像阵列(RAID-1)、合捻阵列或者条状阵列 (co-mingled or striped array)(RAID-1)、或者另一种形式的虚拟储存(例如,并置阵列或者自旋阵列、磁盘簇(JBOD)阵列等)。在各种实施例中,对于其他数量的储存介质,可以采用其他形式的阵列(例如,RAID-5等)。
[0094] 在另一个实施例中,存储层级可以包括多种类型(混合)的储存介质(例如,SSD和HDD二者等),并且可以包括(也可以不包括)提供分立存储介质的性能特性的混合的高速缓存架构。在这种实施例中,异构存储系统306 的分层级或者分割的方案可以与异构存储系统306的高速缓存分层结构组织的方案组合。例如,在各种实施例中,第一层级312和第三层级332可以不包括高速缓存方案(或者存储器互连340b不提供),但是第二层级322可以包括与上面参考图3a描述的高速缓存分层结构相同的高速缓存分层结构。
[0095] 在特定例子中,提供两个或者两个以上储存介质的混合的层级可以主要基于(各)磁技术储存介质(例如,HDD),但是具有较小的闪存部分(例如,单SSD等),该较小的闪存部分对混合层级存储的全部数据中的一小部分提供较快访问。在这种实施例中,两个或者两个以上的相异储存介质可以包括在层级中,并且可以组织为多个分层高速缓存分层结构。在一些实施例中,存储器互连304b可以管理高速缓存方案(例如,高速缓存命中,高速缓存相干等),如上所述。在其他实施例中,可以存在独立存储器控制器(未示出),以管理这种高速缓存方案。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0096] 在各种实施例中,层级或者高速缓存分层结构可以仅包括特定储存介质的一部分。例如,在一个实施例中,一层高速缓存分层结构可以包括25%(或者其他数量)的储存介质(例如,储存介质136等),并且为非高速缓存使用而保留剩余高速缓存分层结构。在各种实施例中,可以配置存储器互连 304b,以动态调节为高速缓存或者层级保留的储存介质的数量或者部分。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0097] 图3b和3c还示出系统301对触发事件370的响应。如上所述,可以配置存储器互连304b,以至少部分地根据与每种类型的储存介质关联的一个或者多个性能特性,将异构存储系统306组织成储存介质层级的分层结构(例如层级312、322和332)。
[0098] 在所示的实施例中,存储器互连304b根据速度来组织层级。在各种实施例中,可以给予层级312、322和332优先处理,因为第一层级312最快并且可以是较希望的。对于第二层级322也同样,而对于第三层级332最低。然而,如图3b所示,可以发生触发事件370(例如,储存介质136可能突然超过错误阈值或者温度阈值等)。如图3c所示,在收到该触发事件370后,可以配置存储器互连304b,重新动态组织分层结构的储存介质层级(例如,层级312、322和332)。在所示的实施例中,重新组织层级(与图3b有关),使得故障储存介质136现在是第三存储器层332,而两个HDD储存介质336 和146现在是第二存储层级322。在这种实施例中,故障储存介质136可以是最低优选储存介质,并且只要可能,就可以避开其。在一个这种实施例中,故障储存介质136可以仅用于完成读数据访问,并且可以对其他层级执行写数据访问(例如,可以缓慢地并且尽可能对处理器透明地使数据移离故障储存介质并且移动到非故障储存介质等)。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0099] 应当明白,重新组织层级(例如,层级312、322和332)的方式可以有许多,并且可以有许多其他触发事件370可以导致存储器互连304b执行重新组织。尽管图3c示出以层级的优先顺序重新组织(例如,将储存介质 136移动到第三层级322等),但是可以重新组织包括在各种层级中的储存介质。例如,通过将储存介质336添加到储存介质136,可以重新形成第二层级322。在这种实施例中,闪存式储存介质136可以用作HDD式储存介质 336的高速缓存(例如,既提供速度又提供储存容量等)。特别是,如果给定其他形式或者类型的储存介质(例如,PRAM、MRAM等),可以有其他形式的层级。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0100] 图4是根据所公开主题的装置400的示例性实施例的方框图。装置400 可以是或者可以包括存储器互连(例如,图1的存储器互连104等),并且可以与图2的系统200相似。尽管图2的系统200示出处理器或者各处理器采用统一访问协议的实施例,但是系统400示出处理器或者各处理器使用多个访问协议。
[0101] 传统上,通过被称为“北桥”的一部分芯片组,处理器与系统或者主存储器(例如,DRAM等)以及任意二次存储器交互。北桥使对系统存储器的通信与对二次存储器的通信分离。北桥通过第一协议直接与系统存储器通信,并且将对二次存储器的通信转移到被称为“南桥”的另一部分芯片组。然后,南桥通过第二协议与二次存储器通信。最后,北桥的系统存储器部分移动到或者集成到其处理器内(例如,存储器芯片控制器(MCC)、集成存储器控制器(IMC)等)。通常,处理器直接通过第一协议(通过MCC)与系统存储器通信,并且在芯片组上完成与二次存储器的通信(例如,通过I/O控制器集线器(ICH)、平台控制器集线器(PCH)等),该通信使用第二协议。
[0102] 尽管图2的实施例利用单个统一访问协议与存储器互连通信,但是当前 (和传统)处理器将至少两个协议用于数据访问(第一个协议用于系统存储器,而第二个协议用于二次存储器)。因此,在处理器已从传统的两个协议惯例转变的实施例中,可以使用单个统一访问协议。在图4所示的实施例中,配置装置400,以使用传统处理器采用的多个协议。
[0103] 在一个实施例中,装置400可以包括处理器系统储存器接口402n,配置该处理器系统储存器接口402n,以接收处理器(未示出)发送的并且送到系统存储器(例如,DRAM等)的数据访问。还可以配置处理器I/O接口 402n,以将处理器期望将其送到系统存储器的数据访问的结果(例如,写确认、请求的数据194等)发送到处理器。在各种实施例中,可以配置处理器 I/O接口402n,以通过集成存储器控制器(IMC)或者类似电路通常采用的第一访问协议与处理器通信。
[0104] 在一个实施例中,装置400可以包括处理器二次存储器接口402s,配置该处理器二次存储器接口402s,以接收处理器发送的并且送到二次存储器 (例如,HDD、SSD等)的数据访问。还可以配置处理器I/O接口402s,以将处理器期望将其送到二次存储器的数据访问的结果(例如,写确认、请求的数据194等)发送到处理器。在各种实施例中,可以配置处理器I/O接口 402s,以通过I/O控制器集线器(ICH)或者类似电路通常采用的第二访问协议与处理器通信。
[0105] 在各种实施例中,装置400可以包括集成连接构造和存储器控制器404,配置该集成连接构造和存储器控制器404,以处理来自处理器系统存储器接口402n和处理器二次储存器接口402s的数据访问。在各种实施例中,可以配置存储器控制器404(或者协处理器电路208),以将这些处理器协议翻译为基于储存介质的协议,反之亦然。
[0106] 此外,在各种实施例中,可以配置存储器控制器404,以使来自处理器预料的储存介质的数据访问路由到另一个储存介质。例如,如果通过处理器系统存储器接口402n进行数据访问,则处理器预料将对系统存储器发生数据访问(例如,存储器类型1接口216等)。然而,因为各种原因,存储器控制器404可以判定将对不同的储存介质(例如,PRAM、NAND等)发生数据访问,并且在其需要时,可以对数据访问进行路由。在这种实施例中,可以配置存储器控制器404,以对处理器隐藏或者仅仅不提及储存介质的变化。
[0107] 在另一个实施例中,可以配置存储器控制器404,以遵循或者遵守处理器的储存介质期望,使得可以对系统存储器(例如,存储器类型1接口216 等)发生通过处理器系统存储器接口402n发生的所有数据访问。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0108] 在各种实施例中,装置400可以包括不同的接口(例如,接口402n、 402s等),用于不同的处理器。在这种实施例中,多处理器系统可以允许对装置400较多的甚或不拥塞的访问。在这种实施例中,各种处理器可以采用不同的通信协议。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0109] 图5是根据所公开主题的技术的示例性实施例的流程图。在各种实施例中,诸如图1、3a、3b、3c或者9的系统的系统可以使用或者产生技术500。此外,诸如图2或者4的系统的系统可以使用或者产生技术500的各部分。但是,应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。应当明白,所公开的主题并不局限于技术500所示的动作的顺序或者数量。
[0110] 在一个实施例中,方框502示出可以接收对异构存储系统的数据访问,如上所述。在一个实施例中,可以由存储器互连从处理器接收数据访问。在各种实施例中,异构存储系统可以包括多种类型的储存介质,如上所述。在一些实施例中,每种类型的存储介质都可以基于相应存储技术,并且与一个或者多个性能特性关联,如上所述。在各种实施例中,异构存储系统可以包括易失性主系统存储器储存介质和非易失性二次储存介质,如上所述。
[0111] 在各种实施例中,多种类型的储存介质可以基于两个或者两个以上的不同存储介质,如上所述。在一些实施例中,多种类型的储存介质包括基于从基本上包括如下的组中选择的三个或者三个以上的不同存储技术的储存介质:动态随机存取存储器(DRAM)、阻性随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁随机存取存储器(MRAM)、NAND闪速存储器以及磁存储器,如上所述。
[0112] 在一个实施例中,接收可以包括以统一访问协议的方式接收数据访问,如上所述。在另一个实施例中,接收数据访问可以包括通过第一访问协议接收对一个或者多个储存介质的第一组的数据访问;以及通过第二访问协议接收对一个或者多个储存介质的第二组的数据访问,如上所述。
[0113] 在各种实施例中,该方框所示的一个或者多个动作可以由图1、2、3a、 3b、3c、4或者9的装置或者系统、图1、2、3a、3b、3c或者4的存储器互连或者处理器执行,如上所述。
[0114] 方框504示出在一个实施例中,根据各种特性,可以将异构存储系统的储存介质确定为数据访问的目标储存介质,如上所述。在各种实施例中,该确定可以至少部分地根据与目标储存介质关联的至少一个性能特性进行,如上所述。在各种实施例中,该方框所示的一个或者多个动作可以由图1、2、 3a、3b、3c、4或者9的装置或者系统、图1、2、3a、3b、3c或者4的存储器互连执行,如上所述。
[0115] 方框506示出在一个实施例中,数据访问可以至少部分地在处理器与目标储存介质之间路由,如上所述。在一个实施例中,路由可以包括将数据访问从统一访问协议翻译为目标储存介质采用的储存介质专用协议,如上所述。在各种实施例中,接收数据访问可以包括接收与数据访问关联的数据类型的指示符。在这种实施例中,路由可以包括优先根据数据类型使数据路由到多种类型的储存介质中的一个,如上所述。在一些实施例中,在编译当由处理器执行时导致数据访问的软件程序时,可以设定与该数据关联的数据类型,如上所述。在各种实施例中,该方框所示的一个或者多个动作可以由图 1、2、3a、3b、3c、4或者9的装置或者系统、图1、2、3a、3b、3c或者4 的存储器互连执行,如上所述。
[0116] 方框501示出在一个实施例中,可以将多种类型的储存介质中的至少一部分组织成储存介质层级的分层结构,如上所述。在一些实施例中,该组织可以至少部分地基于与每种类型的储存介质关联的一个或者多个性能特性,如上所述。在各种实施例中,组织可以包括将分层结构的储存介质层级组织成分层高速缓存存储系统,如上所述。在这种实施例中,将分层结构的储存介质层级组织成分层高速缓存存储系统可以包括监视分层高速缓存存储系统中的每个储存介质的数据内容,如上所述。在这种实施例中,确定可以包括如果存在储存介质,则哪个储存介质包括与数据访问关联的一个数据,如上所述。在这种实施例中,路由可以包括使数据访问路由到包括在包括与数据访问关联的一个数据的分层高速缓存存储系统的最高层中的储存介质,如上所述。在各种实施例中,如果包括关联的一个数据的分层高速缓存存储系统的最高层包括易失性储存介质,则技术500还可以包括镜像分层高速缓存存储系统的非易失性层中的一个数据,如上所述。
[0117] 在一些实施例中,技术500还可以包括响应触发事件,重新动态组织分层结构的储存介质层级,如上所述。在这种实施例中,触发事件可以包括异构存储系统包括的损坏储存介质的至少局部故障,如上所述。在一个实施例中,重新动态组织可以包括减少损坏储存介质的使用,如上所述。在各种实施例中,该方框所示的一个或者多个动作可以由图1、2、3a、3b、3c、4或者9的装置或者系统、图1、2、3a、3b、3c或者4的存储器互连执行,如上所述。
[0118] 图6a是根据所公开主题的系统600的示例性实施例的方框图。在所示的实施例中,系统600可以包括使用异构存储系统106的一个或者多个虚拟机602,如上所述。在这种实施例中,,可以在异构存储系统106中路由虚拟机602的存储器使用,以利用其储存介质的各种物理特性。
[0119] 如上所述,在各种实施例中,异构存储系统106可以包括多个不同储存介质(例如,储存介质116、126、136、146等)。在这种实施例中,异构存储系统106可以包括基于各种储存技术的不同类型的储存介质。在一些实施例中,这些技术可以包括但并不局限于例如:DRAM、相变RAM(PRAM)、 NAND或者闪速存储器(例如,SSD等)、阻性RAM(RRAM)、磁阻RAM (MRAM)、磁存储器(例如,HDD等)等。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0120] 同样,在所示的实施例中,系统600可以包括一个或者多个物理处理器或者主处理器或者中央处理单元(CPU)662和其他硬件和/或者软件部件(例如,主操作系统(OS)、网络控制器/接口、芯片组等)。在这种实施例中,可以采用这些物理硬部件或者主硬部件662执行虚拟机602。
[0121] 在所示的实施例中,系统600可以包括一个或者多个虚拟机(VM)602。尽管示出了三个虚拟机602、602a和602b,但是应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。在各种实施例中,VM 602包括计算系统的仿真。在特定实施例中,VM 602可以包括支持执行整个操作系统 (OS)和一个或者多个应用的基本上整个系统平台或者器件的仿真。在VM 的用语中,将执行或者完成该仿真的真实或者物理硬件/软件称为“主”,而将仿真或者虚拟硬件/软件称为“客(guest)”。
[0122] 在各种实施例中,虚拟机602可以包括虚拟处理器692、虚拟存储器I/O 接口694和被仿真的其他通用虚拟硬件器件(例如,网络接口、储存介质等)。此外,在各种实施例中,虚拟机602可以执行客操作系统(OS)696和一个或者多个应用698。在各种实施例中,VM 602可以处理数据682。因为一部分VM处理数据682,所以数据682可以存储于系统600(例如,异构存储系统106等)的物理存储器中,并且通过数据访问来访问(例如,读、写等) 数据682。
[0123] 在所示的实施例中,系统600可以包括虚拟层或者存储器管理单元 (MMU)604。在一些实施例中,MMU 604可以包括图1、2、3a、3b或者 5的存储器互连,如上所述。在所示的实施例中,可以配置MMU 604,以使数据或者存储器访问在VM 602与异构存储系统106,或者更具体地说,与异构存储系统106的储存介质116、126、136、146之间路由。
[0124] 在各种实施例中,每个VM 602可以执行各种应用698,并且这些应用 698中的每个都可以具有不同的系统资源要求或者需要。例如,一个应用698 可以是文件服务器或者数据库,并且可以对以基本上非易失性格式存储的信息要求快速读/写访问。另一个应用698可以是网络服务器,并且可以对大多数高速缓存在易失性存储器中的数据要求快速读访问。在又另一个实施例中,应用698可以是批处理服务器或者编译服务器(例如,用于执行小程序等),并且可以涉及对存储于虚拟存储器中、最终写到非易失性储存介质的数据进行快速读/写访问。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0125] 然而,无论VM 602或者应用698的目的是什么(例如,基础设施即服务(IaaS)、软件即服务(SaaS)、平台即服务(PaaS)等)以及系统资源要求是什么(例如,可靠储存、快速读、快速写、每秒的交易等),VM 602都可以与特定服务质量(QoS)关联。在各种实施例中,QoS可以保证VM 602 或者应用698提供的特定性能水平或者将其设定为要求。在一些实施例中,这些QoS保证可以由服务层次协定(SLA)增强。如此,当某人执行应用 698时,其就知道应用698的执行将达到特定服务层次。
[0126] 保证的QoS层次可以是希望的或者重要的(对于各种用户),因为VM 602的特征中的一个是其可以无缝地基本上可以从一组物理硬件移动到另一组物理硬件。各个硬件可以不同,并且因此,可以具有不同的物理特性,但是利用QoS协定,可以确保最低性能质量级。
[0127] 在所示的实施例中,每个VM 602或者应用698都可以与指出该应用698 或者VM 602期望的QoS级的QoS标帜670、670a或者670b关联。例如,一个QoS标帜670可以指出应用
698期望或者要求存储器100纳秒(ns)的等待时间对于应用698是最短存储器等待时间。在这种实施例中,可以配置系统600,以对应用698提供满足该100ns的最短等待时间要求的物理硬件。
[0128] 在这种实施例中,可以配置MMU 604,以根据应用698的QoS要求(如关联QoS标帜670表达的),在各种储存介质(例如,介质116、126等)或者存储技术之间分配或者路由数据访问。此外,在各种实施例中,能够配置 MMU 604,以当不再要求QoS保证时,或者当QoS保证可以放松时(例如,如触发事件确定的,等),在储存介质之间转移储存数据或者存储页面。
[0129] 在所示的实施例中,当转移VM 602,或者在系统600上执行VM 602 时,可以配置MMU 604(或者主CPU 662),以读QoS标帜670。在一些实施例中,QoS标帜670可以包括指出虚拟机保证的感兴趣性能特性或者标准的第一部分672。部分地根据VM 602对给定性能特性的灵敏度,可以配置 MMU 604,以从VM 602到完成或者解决VM 602的性能特性的相应储存介质(例如,储存介质116、126等)分配或者路由存储器访问。例如,如果 VM 602或者应用698是等待时间敏感的(如QoS确定的),则当其首先转移到主服务器(例如,系统600)上时,在对可用的快速存储技术分配的空间内(例如,储存介质116或者126等),执行所有新页面或者存储器分配。
[0130] 在所示的实施例中,QoS标帜670可以包括指出VM 602的性能特性要求的值或者阈值范围的第二部分674。此外,MMU 604可以读该标帜部分 674,并且然后,利用该值判定使VM 602的存储器访问路由到何处。例如,如果第二部分674表示100ns的等待时间要求或者阈值,则可以对满足100 ns要求的DRAM(储存介质116)分配VM 602或者应用698的存储器访问或者页面。能够执行类似的判定,以根据可用的存储技术的类型,将整个存储空间的利用率提高到最高。
[0131] 在一个实施例中,MMU 604可以包括存储器特性列表或者数据库611,该存储器特性列表或者数据库611可以使实际储存介质、存储介质或者存储技术(例如,储存介质116、126等)与其实现的特定物理特性(例如,小于100ns的等待时间、非易失性、最大写次数、写速度、储存容量等)关联。在一些实施例中,在建立系统600时,可以提供该列表611。在另一个实施例中,可以周期性地或者根据触发事件(例如,对存储系统106添加储存介质等)更新该列表。
[0132] 在一些实施例中,可以将来自QoS标帜670(例如,QoS标帜670a、 QoS标帜670b等)的值或者数据添加到存储器特性列表611。在这种实施例中,VM 602或者应用698的QoS要求可以映射到各种相应储存介质或者与其关联。在一些实施例中,可以从一个QoS标帜670到多个储存介质映射或者关联。在一个这种实施例中,映射可以指出储存介质的优先顺序的分层结构或者级。例如,如果QoS标帜670指出100ns的等待时间要求,则存储器特性列表611可以使来自应用698的存储器访问与DRAM(储存介质 116)主关联(反过来又与QoS标帜670关联),但是与PRAM(储存介质 126)次关联。在这种实施例中,如果因为某种原因,访问DRAM 116是不可能的或者是不希望的,则MMU 604可以使存储器访问从应用698路由到 PRAM 
126。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0133] 在所示的实施例中,MMU 604可以包括存储器路由器610,配置该存储器路由器610,以至少部分地根据与目标储存介质关联的至少一个性能特性和与虚拟机602或者应用
698关联并且指出虚拟机602或者应用698保证的一个或者多个性能特性的QoS标帜670,为数据访问选择异构存储系统106 的目标储存介质。在一个实施例中,当VM 602对异构存储系统106进行存储器访问(例如,读、写等)时,MMU 604可以负责将VM 602采用的虚拟地址空间翻译为系统600采用的实际地址空间。在一些实施例中,实际地址空间可以包括平面存储空间。
[0134] 在各种实施例中,存储器路由器610可以接收存储器访问(例如,写数据682等),并且注意到存储器访问与特定VM 602或者应用698关联并且因此与特定QoS标帜670关联。在这种实施例中,然后,存储器路由器610 可以将QoS标帜670的(各)物理特性要求(例如,低于100ns的等待时间)与储存介质的物理特性进行比较。在一个实施例中,可以将物理特性信息存储于存储器特性列表611中。
[0135] 在这种实施例中,存储器路由器610可以使存储器访问与合适的储存介质(例如,储存介质126等)匹配,并且使数据访问路由到该目标储存介质 (如图6a的粗线所示)。如上所述,在一些实施例中,可以将VM 602和/ 或者应用698之间的关联存储于存储器特性列表611中。
[0136] 如上所述,在各种实施例中,选择的目标储存介质可以不是最有利于满足QoS保证的储存介质。在这种实施例中,存储器路由器610可以考虑到选择目标储存介质时的附加因素,诸如,例如,自由储存空间的数量、到储存介质的带宽、到储存介质的拥塞、储存介质的可靠性等。在一个这种实施例中,MMU 604可以包括自由页面列表612,配置该自由页面列表612,以保持与每个储存介质关联的可分配储存空间的数量的计数。在这种实施例中,如果优选的目标储存介质对于数据访问没有足够的自由空间(例如,因为数据访问的容量,因为份额系统、其他阈值等),则存储器路由器610可以选择次优选的或者较次优选的(例如,第三,等)储存介质作为目标储存介质。例如,如果DRAM 116是优选目标储存介质,但是太满了(例如,根据阈值等判断),则存储器路由器610可以选择PRAM 126作为目标储存介质。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0137] 图6b是根据所公开主题的系统600的示例性实施例的方框图。在这种实施例中,可以配置MMU 604,以在两个或者两个以上的储存介质(例如,储存介质116和126、储存介质126和146,等)之间分配与虚拟机602或者应用698关联的数据。在一些实施例中,该两个或者两个以上的储存介质可以共享同一个物理地址空间。在一些实施例中,这可能是因为异构存储系统106包括平面存储空间。在另一个实施例中,这可能是因为两个或者两个以上储存介质是异构存储系统106的非平面存储空间的同一部分的一部分。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0138] 此外,在一些实施例中,数据访问可以包括读访问,在读访问中,数据 682已经存储于储存介质(例如,储存介质116等)中。在这种实施例中,可以配置存储器路由器610,以选择已经包括请求数据682的储存介质作为目标储存介质,而不考虑储存介质的物理特性和/或者QoS标帜670。在各种实施例中,如果然后编辑或者修改数据682,并且将其重新写到异构存储系统106,则MMU 604可以根据储存介质的物理特性和QoS标帜670确定是否应当路由数据682,或者是否应当使数据访问路由到先前存储数据682 的储存介质。例如,如果整体或者大部分地重新写数据182,则可以将数据 682从较次优选储存介质(例如,RRAM 126等)移动到较优选储存介质(例如,DRAM 116等)。相反,如果数据682是未修改的非常大的文件或者数据组的一部分则MMU 604可以选择使具有较大文件或者数据组的数据682 保持在较次优选储存介质(例如,PRAM 126等)。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。在一些实施例中,MMU 604 可以选择,主动地或者动态地使数据682在储存介质之间移动,如图结合图 7所述。
[0139] 图7是根据所公开主题的系统700的示例性实施例的方框图。在所示的实施例中,系统700可以包括异构存储系统106和一个或者多个虚拟机(VM) 602,如上所述。在所示的实施例中,系统700还可以包括虚拟层或者存储器管理单元(MMU)704。在各种实施例中,图7的MMU 704可以(整体地或者部分地)包括图6a和6b的MMU 604,反之亦然。
[0140] 在所示的实施例中,数据682可能已经存储于异构存储系统106(例如,储存介质116等上)中。如上所述,在各种实施例中,QoS标帜670可以包括指出VM 602或者应用698保证的性能特性的值或者阈值的范围的第二部分或者要求部分674。在所示的实施例中,第二部分674可以指出可以放松或者降低QoS保证。在一些实施例中,第二部分674可以包括可以导致放松或者增强QoS保证的时间或者事件的列表。在这种情况下,这些时间或者事件可以被称为“触发事件”。在各种实施例中,第二部分674可以包括与QoS 保证的放松或者级别关联的新的或者替换的范围或者(各)阈值的列表。
[0141] 例如,在一个实施例中,触发事件可以是不使用存储页面或者存储块。在这种实施例中,QoS标帜670可以指出在可以放松与存储器的页面或者一部分关联的QoS保证的特定时间周期(例如,10分钟,50次存储器访问,等)内是否未访问存储器的一个页面或者一部分(例如,对其读,从其写、对其读或者从其写,等)。在这种实施例中,可以配置MMU 704,以将数据从第一储存介质移动或者转移到第二储存介质。
[0142] 在这种实施例中,MMU 704可以包括事件检测器711,配置该事件检测器711,以检测触发事件已经发生(例如,在触发阈值内,未访问页面,等)。在这种实施例中,事件发生后,MMU 704可以主动使数据在储存介质之间移动。
[0143] 在一些实施例中,MMU 704可以包括CPU接口716,配置该CPU接口 716,以在MMU 704与主PUC 662或者虚拟机602之间接收/发送存储器访问,并且这可以是如何利用MMU 
704启动正常存储器访问。MMU 704还可以包括存储系统接口718,配置该存储系统接口718,以在MMU 704与异构存储系统106之间接收/发送存储器访问。在所示的实施例中,可以配置MMU 704,以以不使用CPU接口716的方式,转移冷数据或者与放松QoS保证关联的数据,或者使得对CPU 662或者VM 602隐藏该转移,或者在不需要 CPU 662或者VM 602的帮助的情况下,进行该转移。在这种实施例中,该转移不需要使CPU 662或者VM 602负担转移的任务。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0144] 在所示的实施例中,如果触发事件是在某个时间周期内(完全地或者部分地)未访问该数据,则可以将存储于DRAM 116上的数据转移到或者移动到较慢的储存介质126(如粗箭头所示)。在一些实施例中,根据一组放松 QoS保证,可以选择新储存介质。在另一个实施例中,新储存介质可能不满足QoS保证,但是可以认为满足QoS保证的故障是可接受的。在这种实施例中,通过从希望的DRAM储存器116移动未使用的数据或者冷数据,可以使更多的空间可用于储存热数据或者频繁使用的数据。因此,因为QoS 保证能够满足更频繁使用的数据(与因为DRAM 116没有空间,使用数据必须存储于较不希望的PRAM126中的情况相反),所以可以提高系统700的整体性能。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0145] 在上述例子的各种实施例中,如果在第二阈值周期不再访问存储于 PRAM 126上的数据,则第二触发事件可能发生,并且对于该页面或者数据,可能发生进一步放松QoS保证。在这种实施例中,可以使该数据再转移到第三或者后续储存介质(例如,储存介质136或者146等)。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0146] 在另一个例子中,触发事件可以导致QoS保证增加。例如,如果频繁访问存储于PRAM 126中的冷数据,则可能出现新触发事件,并且可以将新热数据从PRAM 126移动到DRAM 116(如粗箭头所示)。应当明白,上面仅是一个说明性例子,所公开的主题并不局限于此。
[0147] 在各种实施例中,触发事件的例子可以包括例如:一天中的时间(例如,在晚上可以放松QoS保证,等)、VM 602或者应用698的活动水平、储存介质或者系统700中的空间量、系统700执行的VM 602的数量、应用698 的用户(例如,特定用户可以对较高的QoS付费,等)等。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0148] 图8是根据所公开主题的技术的示例性实施例的流程图。在各种实施例中,技术800可以由图1、2、3a、3b、3c或者4所示系统的系统使用或者产生。此外,技术800的各部分可以由诸如图6a、6b或者7所示系统的系统使用或者产生。但是,应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。应当明白,所公开的主题并不局限于技术800所示的动作的顺序或者数量。
[0149] 图8是根据所公开主题的技术的示例性实施例的流程图。在各种实施例中,技术800可以由图1、2、3a、3b、3c、4、5、6a、6b、7或者9所示系统的系统使用或者产生。但是,应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。应当明白,所公开的主题并不局限于技术800所示的动作的顺序或者数量。
[0150] 方框802示出在一个实施例中,可以接收对异构存储系统的数据访问,如上所述。在各种实施例中,可以从处理器执行的虚拟机接收该数据访问,如上所述。在这种实施例中,异构存储系统可以包括多种类型的储存介质,其中每种储存介质都基于相应存储技术,并且与一个或者多个性能特性关联,如上所述。
[0151] 方框804示出在一个实施例中,可以确定用于数据访问的异构存储系统的目标储存介质,如上所述。在一些实施例中,确定可以由存储器管理单元执行,如上所述。在各种实施例中,确定可以至少部分地基于与目标储存介质关联的至少一个性能特性和与虚拟机关联并且指出虚拟机保证的一个或者多个性能特性的服务质量,如上所述。
[0152] 在各种实施例中,服务质量标帜可以包括至少两个部分,如上所述。在一些实施例中,服务质量标帜的第一部分可以指出虚拟机保证的性能特性,而服务质量标帜的第二部分可以指出虚拟机保证的性能特性的值范围,如上所述。
[0153] 在各种实施例中,确定目标储存介质可以包括保持与每个储存介质关联的可分配储存空间的数量的计数,如上所述。在这种实施例中,确定可以包括至少部分地根据与每个相应储存介质关联的可分配储存空间的数量和服务质量选择目标储存介质,如上所述。
[0154] 在一些实施例中,可以配置虚拟机,以执行多个应用,如上所述。在这种实施例中,每个应用可以与指出虚拟机保证的一个或者多个性能特性的服务质量标帜关联,如上所述。在一个这种实施例中,确定目标储存介质可以包括确定执行的哪个应用与数据访问关联,如上所述。
[0155] 方框806示出在一个实施例中,路由数据访问可以在处理器与目标储存介质之间路由,如上所述。在一些实施例中,这可以由存储器管理单元实现,如上所述。
[0156] 方框808示出在一个实施例中,响应触发事件,可以将与虚拟机关联的数据从第一储存介质移动到第二储存介质,如上所述。在各种实施例中,这可以由存储器管理单元实现,如上所述。在一个实施例中,触发事件可以包括在预定时间周期内数据未被访问,如上所述。在另一个实施例中,触发事件可以包括放松虚拟机保证的一个或者多个性能特性,如上所述。
[0157] 图9是可以包括根据所公开主题的原理形成的半导体器件的信息处理系统900的原理方框图。
[0158] 参考图9,信息处理系统900可以包括一个或者多个根据所公开的主题的原理构造的器件。在另一个实施例中,信息处理系统900可以采用或者执行根据所公开的主题的原理的一个或者多个技术。
[0159] 在各种实施例中,信息处理系统900可以包括计算器件、诸如,例如,膝上型的、台式的、工作站、服务器、刀锋服务器、个人数字助理、智能电话、平板式的以及其他适当计算机等,或者其虚拟机或者虚拟计算器件。在各种实施例中,信息处理系统900可以由用户(未示出)使用。
[0160] 根据所公开的主题的信息处理系统900还可以包括:中央处理单元 (CPU)、逻辑或者处理器910。在一些实施例中,处理器910可以包括一个或者多个功能单元块(FUB)或者组合逻辑块(CLB)915。在这种实施例中,组合逻辑块可以包括:各种布尔逻辑运算(例如,NAND、NOR、NOT、 XOR等)、稳定逻辑器件(例如,触发器、存器等)、其他逻辑器件或者其组合。可以以简单方式或者复杂方式配置这些组合逻辑运算,以处理输入信号,从而实现要求的结果。应当明白,尽管描述了同步组合逻辑运算的几个说明性例子,但是所公开的主题并不局限于此,并且可以包括异步运算或者它们的混合。在一个实施例中,组合逻辑运算可以包括多个互补金属化物半导体(CMOS)晶体管。在各种实施例中,可以将这些CMOS晶体管排列为执行逻辑运算的门,但是应当明白,可以采用其他技术,并且在所公开的主题的范围内。
[0161] 根据所公开的主题的信息处理系统900还可以包括易失性存储器920 (例如,随机存取存储器(RAM)等)。根据所公开的主题的信息处理系统 900还可以包括非易失性存储器930(例如,硬盘、光存储器、NAND或者闪速存储器等)。在一些实施例中,可以将易失性存储器920、非易失性存储器930或者其组合或者部分称为“储存介质”。在各种实施例中,可以配置易失性存储器920和/或者非易失性存储器930,以以半永久或者基本上永久的方式存储数据。
[0162] 在各种实施例中,信息处理系统900可以包括一个或者多个网络接口 940,配置该网络接口940,以使信息处理系统900成为通信网络的一部分并且通过通信网络通信。Wi-Fi协议的例子可以包括但并不局限于:电气与电子工程师学会(IEEE)802.11g,IEEE 802.11n等。蜂窝协议的例子可以包括但并不局限于:IEEE 802.16m(又称为高级无线域域网(Wireless-MAN (Metropolitan Area Network)Advanced))、高级长期演进(LTE)、增强数据速率的全球移动通信系统演进(EDGE)、演进的高速分组接入(HSPA+) 等。有线协议的例子可以包括但并不局限于:IEEE 802.3(又称为以太网)、光纤通道、电力线通信(例如,HomePlug、IEEE 1901等)等。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0163] 根据所公开的主题的信息处理系统900还可以包括用户接口单元950 (例如,显示器适配器、触觉接口、人机接口器件等)。在各种实施例中,可以配置该用户接口单元950,以接收来自用户的输入并且或者将输出送到用户。也可以利用其他类型的器件提供与用户交互;例如,对用户提供的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或者触觉反馈;能够以任何方式接收来自用户的输入,包括:声音输入、语音输入或者触觉输入。
[0164] 在各种实施例中,信息处理设备900可以包括一个或者多个其他设备或者硬件部件960(例如,显示器或者监视器、键盘鼠标照相机、指纹读取器、视频处理器等)。应当明白,上面仅是几个说明性例子,所公开的主题并不局限于此。
[0165] 根据所公开的主题的信息处理系统900还可以包括一个或者多个系统总线905。在这种实施例中,可以配置系统总线905,以可通信地耦合处理器910、易失性存储器920、非易失性存储器930、网络接口940、用户接口单元950以及一个或者多个硬件部件960。处理器910处理的数据或者从非易失性存储器930外部输入的数据可以存储于非易失性存储器930或者易失性存储器920中。
[0166] 在各种实施例中,信息处理系统900可以包括或者执行一个或者多个软件部件970。在一些实施例中,软件部件970可以包括操作系统(OS)和/ 或者应用。在一些实施例中,可以配置OS,以对应用提供一个或者多个服务,并且管理或者用作应用与信息处理系统
900的各种硬件部件(例如,处理器910、网络接口940等)之间的中介。在这种实施例中,信息处理系统 900可以包括一个或者多个本机应用,该本机应用可以安装在本地(例如,安装在非易失性存储器930等中),并且配置该本机应用,以直接由处理器 910执行,并且直接与OS交互。在这种实施例中,本机应用可以包括预编译机器可执行代码。在一些实施例中,本机应用可以包括脚本解释器(例如, C壳(Csh)、苹果脚本、自动热键等)或者虚拟执行机(VM)(例如,Java 虚拟机、微软的公共语言运行时等),配置该脚本解释器或者虚拟执行机 (VM),以将源代码或者目标代码翻译为然后被处理器910执行的可执行代码。
[0167] 利用各种封装技术,可以密封上面描述的半导体器件。例如,利用如下中的任何一个可以密封根据所公开的主题的原理构造的半导体器件:层叠封装(POP)技术、球栅阵列(BGA)技术、芯片级封装(CSP)技术、有引线塑料芯片载体(PLCC)技术、塑料双列直插式封装(PDIP)技术、窝伏尔封装件中芯片(Die in Waffle Pack)技术、晶片形式中的芯片(Die in Wafer Form)技术、板上芯片(COB)技术、陶瓷双列直插封装(CERDIP)技术、塑料公制四方扁平封装(PMQFP)技术、塑料四方扁平封装(PQFP)技术、小外形封装(SOIC)技术、缩小型小外形封装(SSOP)技术、薄小外形封装(TSOP)技术、薄四方扁平封装(TQFP)技术、封装件中系统(SIP)技术、多芯片封装(MCP)技术、晶片级制造封装(WFP)技术、晶片级处理堆叠封装(WSP)技术或者本技术领域内的技术人员公知的其他技术。
[0168] 通过对输入数据进行运算并且产生输出,执行计算机程序的一个或者多个可编程处理器可以执行方法步骤,以执行功能。方法步骤还可以由例如 FPGA(现场可编程门阵列)或者ASIC(专用集成电路)的专用逻辑电路系统执行,并且装置可以被实现为例如FPGA(现场可编程门阵列)或者ASIC (专用集成电路)的专用逻辑电路系统。
[0169] 在各种实施例中,计算机可读介质可以包括当执行时使器件执行至少一部分方法步骤的指令。在一些实施例中,计算机可读介质可以包括在磁介质、光学介质、其他介质或者其组合(例如,CD-ROM、硬盘驱动器、只读存储器、闪存驱动器等)中。在这种实施例中,计算机可读介质可以是有形的和非临时实现的制品。
[0170] 尽管已经参考示例性实施例描述了所公开的主题的原理,但是本技术领域内的技术人员明白可以对其进行各种变更和修改,而不脱离所公开的这些原理的精神和范围。因此,应当明白,上述实施例不是限制性的,而仅是说明性的。因而,所公开的原理的范围由所附权利要求书及其等同的最广泛的允许的解释来确定,而不应当由前面的描述限制或者限定。因此,应当明白,所附的权利要求书旨在涵盖落入实施例的范围内的所有这些修改和变更。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈