虚拟化超大规模环境中的数据管理方案的制作方法_2

文档序号:9616080阅读:来源:国知局
94存储于非易失性储存介质(例如,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或者
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1